[snip]
; Format      :	ELF64 for x86-64 (Relocatable)
;
; Source File :	'procs.adb'

		.686p
		.mmx
		.model flat
.intel_syntax noprefix

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Execute
_text		segment	word public 'CODE' use64
		assume cs:_text
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

		public procs__a
procs__a	proc near		; CODE XREF: procs(bool)+A6p
					; procs(bool)+DCp ...

var_D8		= qword	ptr -0D8h
var_D0		= qword	ptr -0D0h
var_C8		= qword	ptr -0C8h
var_C0		= byte ptr -0C0h
var_B8		= dword	ptr -0B8h
var_B0		= qword	ptr -0B0h
var_A8		= qword	ptr -0A8h
var_90		= qword	ptr -90h
var_88		= qword	ptr -88h
var_80		= byte ptr -80h
var_54		= dword	ptr -54h
var_50		= qword	ptr -50h
var_48		= qword	ptr -48h
var_40		= qword	ptr -40h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h

		push	rbp
		mov	rbp, rsp
		push	r15
		push	r14
		push	r13
		push	r12
		push	rbx
		sub	rsp, 0B8h
		mov	[rbp+var_90], offset __gnat_personality_sj0
		mov	[rbp+var_88], offset unk_BD0
		lea	rax, [rbp+var_80]
		lea	rsi, [rbp+var_30]
		mov	[rax], rsi
		mov	edx, offset loc_FA
		mov	[rax+8], rdx
		mov	[rax+10h], rsp
		lea	rax, [rbp+var_C0]
		mov	rdi, rax	; char
		call	_Unwind_SjLj_Register
		mov	rax, cs:procs__x ; procs(long long)
		add	rax, 1
		mov	cs:procs__x, rax ; procs(long long)
		mov	rax, cs:procs__x ; procs(long long)
		cmp	rax, 1000000h
		ja	loc_331
		mov	[rbp+var_B8], 1
		call	mt__gen_u32
		mov	[rbp+var_34], eax
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		mov	eax, edx
		shr	eax, 1
		mov	edx, eax
		add	edx, edx
		add	edx, eax
		mov	eax, ecx
		sub	eax, edx
		test	eax, eax
		jnz	short loc_B5
		call	procs__b	; procs(bool)
		call	procs__c	; procs(char)
		jmp	loc_332
; ---------------------------------------------------------------------------

loc_B5:					; CODE XREF: procs__a+A4j
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		shr	edx, 1
		mov	eax, edx
		add	eax, eax
		add	eax, edx
		sub	ecx, eax
		mov	edx, ecx
		cmp	edx, 1
		jnz	short loc_E6
		mov	[rbp+var_B8], 1
		call	procs__b	; procs(bool)
		jmp	loc_332
; ---------------------------------------------------------------------------

loc_E6:					; CODE XREF: procs__a+D0j
		mov	[rbp+var_B8], 1
		call	procs__c	; procs(char)
		jmp	loc_331
; ---------------------------------------------------------------------------

loc_FA:					; DATA XREF: procs__a+35o
		lea	rbp, [rbp+30h]
		mov	rdx, [rbp+var_B0]
		mov	rcx, [rbp+var_A8]
		mov	eax, [rbp+var_B8]
		test	eax, eax
		jz	short loc_13C
		sub	eax, 1
		test	eax, eax
		jz	loc_2AD
		sub	eax, 1
		test	eax, eax
		jz	loc_2D9
		sub	eax, 1
		test	eax, eax
		jz	loc_305
		sub	eax, 1
		ud2
; ---------------------------------------------------------------------------

loc_13C:				; CODE XREF: procs__a+114j
		mov	rax, rdx
		mov	rdx, rcx
		cmp	rdx, 2
		jz	loc_1D9
		cmp	rdx, 3
		jz	loc_244
		cmp	rdx, 1
		jz	short loc_16E
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_16E:				; CODE XREF: procs__a+15Aj
		mov	[rbp+var_40], rax
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 2
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 0Ah
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_1AF:				; CODE XREF: procs__a+2BBj
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_2C0
		jmp	loc_332
; ---------------------------------------------------------------------------

loc_1D9:				; CODE XREF: procs__a+146j
		mov	[rbp+var_48], rax
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 3
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 64h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_21A:				; CODE XREF: procs__a+2E7j
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_2EC
		jmp	loc_332
; ---------------------------------------------------------------------------

loc_244:				; CODE XREF: procs__a+150j
		mov	[rbp+var_50], rax
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 4
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 3E8h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_287:				; CODE XREF: procs__a+313j
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	short loc_318
		jmp	loc_332
; ---------------------------------------------------------------------------

loc_2AD:				; CODE XREF: procs__a+11Bj
		mov	[rbp+var_C8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_1AF
; ---------------------------------------------------------------------------

loc_2C0:				; CODE XREF: procs__a+1CEj
		mov	rax, [rbp+var_C8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_2D9:				; CODE XREF: procs__a+126j
		mov	[rbp+var_D0], rdx
		mov	[rbp+var_54], 1
		jmp	loc_21A
; ---------------------------------------------------------------------------

loc_2EC:				; CODE XREF: procs__a+239j
		mov	rax, [rbp+var_D0]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_305:				; CODE XREF: procs__a+131j
		mov	[rbp+var_D8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_287
; ---------------------------------------------------------------------------

loc_318:				; CODE XREF: procs__a+2A6j
		mov	rax, [rbp+var_D8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_331:				; CODE XREF: procs__a+70j procs__a+F5j
		nop

loc_332:				; CODE XREF: procs__a+B0j procs__a+E1j ...
		lea	rax, [rbp+var_C0]
		mov	rdi, rax
		call	_Unwind_SjLj_Unregister
		add	rsp, 0B8h
		pop	rbx
		pop	r12
		pop	r13
		pop	r14
		pop	r15
		pop	rbp
		retn
procs__a	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __int64 __fastcall procs(bool)
		public procs__b
procs__b	proc near		; CODE XREF: procs__a+A6p procs__a+DCp ...

var_D8		= qword	ptr -0D8h
var_D0		= qword	ptr -0D0h
var_C8		= qword	ptr -0C8h
var_C0		= byte ptr -0C0h
var_B8		= dword	ptr -0B8h
var_B0		= qword	ptr -0B0h
var_A8		= qword	ptr -0A8h
var_90		= qword	ptr -90h
var_88		= qword	ptr -88h
var_80		= byte ptr -80h
var_54		= dword	ptr -54h
var_50		= qword	ptr -50h
var_48		= qword	ptr -48h
var_40		= qword	ptr -40h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h

		push	rbp
		mov	rbp, rsp
		push	r15
		push	r14
		push	r13
		push	r12
		push	rbx
		sub	rsp, 0B8h
		mov	[rbp+var_90], offset __gnat_personality_sj0
		mov	[rbp+var_88], offset unk_BF0
		lea	rax, [rbp+var_80]
		lea	rsi, [rbp+var_30]
		mov	[rax], rsi
		mov	edx, offset loc_44E
		mov	[rax+8], rdx
		mov	[rax+10h], rsp
		lea	rax, [rbp+var_C0]
		mov	rdi, rax	; char
		call	_Unwind_SjLj_Register
		mov	rax, cs:procs__x ; procs(long long)
		add	rax, 1
		mov	cs:procs__x, rax ; procs(long long)
		mov	rax, cs:procs__x ; procs(long long)
		cmp	rax, 1000000h
		ja	loc_685
		mov	[rbp+var_B8], 1
		call	mt__gen_u32
		mov	[rbp+var_34], eax
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		mov	eax, edx
		shr	eax, 1
		mov	edx, eax
		add	edx, edx
		add	edx, eax
		mov	eax, ecx
		sub	eax, edx
		test	eax, eax
		jnz	short loc_409
		call	procs__a
		call	procs__c	; procs(char)
		jmp	loc_686
; ---------------------------------------------------------------------------

loc_409:				; CODE XREF: procs(bool)+A4j
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		shr	edx, 1
		mov	eax, edx
		add	eax, eax
		add	eax, edx
		sub	ecx, eax
		mov	edx, ecx
		cmp	edx, 1
		jnz	short loc_43A
		mov	[rbp+var_B8], 1
		call	procs__a
		jmp	loc_686
; ---------------------------------------------------------------------------

loc_43A:				; CODE XREF: procs(bool)+D0j
		mov	[rbp+var_B8], 1
		call	procs__c	; procs(char)
		jmp	loc_685
; ---------------------------------------------------------------------------

loc_44E:				; DATA XREF: procs(bool)+35o
		lea	rbp, [rbp+30h]
		mov	rdx, [rbp+var_B0]
		mov	rcx, [rbp+var_A8]
		mov	eax, [rbp+var_B8]
		test	eax, eax
		jz	short loc_490
		sub	eax, 1
		test	eax, eax
		jz	loc_601
		sub	eax, 1
		test	eax, eax
		jz	loc_62D
		sub	eax, 1
		test	eax, eax
		jz	loc_659
		sub	eax, 1
		ud2
; ---------------------------------------------------------------------------

loc_490:				; CODE XREF: procs(bool)+114j
		mov	rax, rdx
		mov	rdx, rcx
		cmp	rdx, 2
		jz	loc_52D
		cmp	rdx, 3
		jz	loc_598
		cmp	rdx, 1
		jz	short loc_4C2
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_4C2:				; CODE XREF: procs(bool)+15Aj
		mov	[rbp+var_40], rax
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 2
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 0Ah
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_503:				; CODE XREF: procs(bool)+2BBj
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_614
		jmp	loc_686
; ---------------------------------------------------------------------------

loc_52D:				; CODE XREF: procs(bool)+146j
		mov	[rbp+var_48], rax
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 3
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 64h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_56E:				; CODE XREF: procs(bool)+2E7j
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_640
		jmp	loc_686
; ---------------------------------------------------------------------------

loc_598:				; CODE XREF: procs(bool)+150j
		mov	[rbp+var_50], rax
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 4
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 3E8h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_5DB:				; CODE XREF: procs(bool)+313j
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	short loc_66C
		jmp	loc_686
; ---------------------------------------------------------------------------

loc_601:				; CODE XREF: procs(bool)+11Bj
		mov	[rbp+var_C8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_503
; ---------------------------------------------------------------------------

loc_614:				; CODE XREF: procs(bool)+1CEj
		mov	rax, [rbp+var_C8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_62D:				; CODE XREF: procs(bool)+126j
		mov	[rbp+var_D0], rdx
		mov	[rbp+var_54], 1
		jmp	loc_56E
; ---------------------------------------------------------------------------

loc_640:				; CODE XREF: procs(bool)+239j
		mov	rax, [rbp+var_D0]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_659:				; CODE XREF: procs(bool)+131j
		mov	[rbp+var_D8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_5DB
; ---------------------------------------------------------------------------

loc_66C:				; CODE XREF: procs(bool)+2A6j
		mov	rax, [rbp+var_D8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_685:				; CODE XREF: procs(bool)+70j
					; procs(bool)+F5j
		nop

loc_686:				; CODE XREF: procs(bool)+B0j
					; procs(bool)+E1j ...
		lea	rax, [rbp+var_C0]
		mov	rdi, rax
		call	_Unwind_SjLj_Unregister
		add	rsp, 0B8h
		pop	rbx
		pop	r12
		pop	r13
		pop	r14
		pop	r15
		pop	rbp
		retn
procs__b	endp

; ---------------------------------------------------------------------------
		align 8

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

; __int64 __fastcall procs(char)
		public procs__c
procs__c	proc near		; CODE XREF: procs__a+ABp procs__a+F0p ...

var_D8		= qword	ptr -0D8h
var_D0		= qword	ptr -0D0h
var_C8		= qword	ptr -0C8h
var_C0		= byte ptr -0C0h
var_B8		= dword	ptr -0B8h
var_B0		= qword	ptr -0B0h
var_A8		= qword	ptr -0A8h
var_90		= qword	ptr -90h
var_88		= qword	ptr -88h
var_80		= byte ptr -80h
var_54		= dword	ptr -54h
var_50		= qword	ptr -50h
var_48		= qword	ptr -48h
var_40		= qword	ptr -40h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h

		push	rbp
		mov	rbp, rsp
		push	r15
		push	r14
		push	r13
		push	r12
		push	rbx
		sub	rsp, 0B8h
		mov	[rbp+var_90], offset __gnat_personality_sj0
		mov	[rbp+var_88], offset unk_C10
		lea	rax, [rbp+var_80]
		lea	rsi, [rbp+var_30]
		mov	[rax], rsi
		mov	edx, offset loc_7A2
		mov	[rax+8], rdx
		mov	[rax+10h], rsp
		lea	rax, [rbp+var_C0]
		mov	rdi, rax	; bool
		call	_Unwind_SjLj_Register
		mov	rax, cs:procs__x ; procs(long long)
		add	rax, 1
		mov	cs:procs__x, rax ; procs(long long)
		mov	rax, cs:procs__x ; procs(long long)
		cmp	rax, 1000000h
		ja	loc_9D9
		mov	[rbp+var_B8], 1
		call	mt__gen_u32
		mov	[rbp+var_34], eax
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		mov	eax, edx
		shr	eax, 1
		mov	edx, eax
		add	edx, edx
		add	edx, eax
		mov	eax, ecx
		sub	eax, edx
		test	eax, eax
		jnz	short loc_75D
		call	procs__a
		call	procs__b	; procs(bool)
		jmp	loc_9DA
; ---------------------------------------------------------------------------

loc_75D:				; CODE XREF: procs(char)+A4j
		mov	ecx, [rbp+var_34]
		mov	edx, 0AAAAAAABh
		mov	eax, ecx
		mul	edx
		shr	edx, 1
		mov	eax, edx
		add	eax, eax
		add	eax, edx
		sub	ecx, eax
		mov	edx, ecx
		cmp	edx, 1
		jnz	short loc_78E
		mov	[rbp+var_B8], 1
		call	procs__a
		jmp	loc_9DA
; ---------------------------------------------------------------------------

loc_78E:				; CODE XREF: procs(char)+D0j
		mov	[rbp+var_B8], 1
		call	procs__b	; procs(bool)
		jmp	loc_9D9
; ---------------------------------------------------------------------------

loc_7A2:				; DATA XREF: procs(char)+35o
		lea	rbp, [rbp+30h]
		mov	rdx, [rbp+var_B0]
		mov	rcx, [rbp+var_A8]
		mov	eax, [rbp+var_B8]
		test	eax, eax
		jz	short loc_7E4
		sub	eax, 1
		test	eax, eax
		jz	loc_955
		sub	eax, 1
		test	eax, eax
		jz	loc_981
		sub	eax, 1
		test	eax, eax
		jz	loc_9AD
		sub	eax, 1
		ud2
; ---------------------------------------------------------------------------

loc_7E4:				; CODE XREF: procs(char)+114j
		mov	rax, rdx
		mov	rdx, rcx
		cmp	rdx, 2
		jz	loc_881
		cmp	rdx, 3
		jz	loc_8EC
		cmp	rdx, 1
		jz	short loc_816
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_816:				; CODE XREF: procs(char)+15Aj
		mov	[rbp+var_40], rax
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 2
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 0Ah
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_857:				; CODE XREF: procs(char)+2BBj
		mov	rax, [rbp+var_40]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_968
		jmp	loc_9DA
; ---------------------------------------------------------------------------

loc_881:				; CODE XREF: procs(char)+146j
		mov	[rbp+var_48], rax
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 3
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 64h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_8C2:				; CODE XREF: procs(char)+2E7j
		mov	rax, [rbp+var_48]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	loc_994
		jmp	loc_9DA
; ---------------------------------------------------------------------------

loc_8EC:				; CODE XREF: procs(char)+150j
		mov	[rbp+var_50], rax
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 4
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_begin_handler
		mov	rax, qword ptr cs:system__soft_links__abort_undefer
		call	rax ; system__soft_links__abort_undefer
		mov	rax, cs:procs__y
		add	rax, 3E8h
		mov	cs:procs__y, rax
		mov	[rbp+var_54], 0

loc_92F:				; CODE XREF: procs(char)+313j
		mov	rax, [rbp+var_50]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		mov	eax, 0
		call	__gnat_end_handler
		cmp	[rbp+var_54], 1
		jz	short loc_9C0
		jmp	loc_9DA
; ---------------------------------------------------------------------------

loc_955:				; CODE XREF: procs(char)+11Bj
		mov	[rbp+var_C8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_857
; ---------------------------------------------------------------------------

loc_968:				; CODE XREF: procs(char)+1CEj
		mov	rax, [rbp+var_C8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_981:				; CODE XREF: procs(char)+126j
		mov	[rbp+var_D0], rdx
		mov	[rbp+var_54], 1
		jmp	loc_8C2
; ---------------------------------------------------------------------------

loc_994:				; CODE XREF: procs(char)+239j
		mov	rax, [rbp+var_D0]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_9AD:				; CODE XREF: procs(char)+131j
		mov	[rbp+var_D8], rdx
		mov	[rbp+var_54], 1
		jmp	loc_92F
; ---------------------------------------------------------------------------

loc_9C0:				; CODE XREF: procs(char)+2A6j
		mov	rax, [rbp+var_D8]
		mov	[rbp+var_B8], 0FFFFFFFFh
		mov	rdi, rax
		call	_Unwind_SjLj_Resume
; ---------------------------------------------------------------------------

loc_9D9:				; CODE XREF: procs(char)+70j
					; procs(char)+F5j
		nop

loc_9DA:				; CODE XREF: procs(char)+B0j
					; procs(char)+E1j ...
		lea	rax, [rbp+var_C0]
		mov	rdi, rax
		call	_Unwind_SjLj_Unregister
		add	rsp, 0B8h
		pop	rbx
		pop	r12
		pop	r13
		pop	r14
		pop	r15
		pop	rbp
		retn
procs__c	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

		public procs___elabb
procs___elabb	proc near
		push	rbp
		mov	rbp, rsp
		mov	dword ptr cs:procs__seeds, 111h
		mov	dword ptr cs:procs__seeds+4, 222h
		mov	dword ptr cs:procs__seeds+8, 333h
		mov	dword ptr cs:procs__seeds+0Ch, 444h
		mov	rdx, cs:procs__seeds
		mov	rax, cs:procs__seeds+8
		mov	rdi, rdx
		mov	rsi, rax
		call	mt__init_genrand__2
		pop	rbp
		retn
procs___elabb	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

		public procs___elabs
procs___elabs	proc near
		push	rbp
		mov	rbp, rsp
		mov	edi, offset procs__e1
		call	system__exception_table__register_exception
		mov	edi, offset procs__e2
		call	system__exception_table__register_exception
		mov	edi, offset procs__e3
		call	system__exception_table__register_exception
		pop	rbp
		retn
procs___elabs	endp

_text		ends

; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
; Segment alignment '32byte' can not be represented in assembly
_data		segment	para public 'DATA' use64
		assume cs:_data
		;org 0A80h
		public procs_E
procs_E		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		public procs__e1
procs__e1	db    0			; DATA XREF: procs___elabs+4o
					; .gcc_except_table:0000000000000BECo ...
		db  41h	; A
		db    0
		db    0
		db    9
		db    0
		db    0
		db    0
		dq offset procs__e1E	; "PROCS.E1"
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		public procs__e2
procs__e2	db    0			; DATA XREF: procs___elabs+Eo
					; .gcc_except_table:0000000000000BE8o ...
		db  41h	; A
		db    0
		db    0
		db    9
		db    0
		db    0
		db    0
		dq offset procs__e2E	; "PROCS.E2"
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		public procs__e3
procs__e3	db    0			; DATA XREF: procs___elabs+18o
					; .gcc_except_table:0000000000000BE4o ...
		db  41h	; A
		db    0
		db    0
		db    9
		db    0
		db    0
		db    0
		dq offset procs__e3E	; "PROCS.E3"
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		public procs__y
procs__y	dq 0			; DATA XREF: procs__a+196r
					; procs__a+1A1w ...
		public procs__x
; procs(long long)
procs__x	dq 0			; DATA XREF: procs__a+51r procs__a+5Cw ...
_data		ends

; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
_bss		segment	para public 'BSS' use64
		assume cs:_bss
		;org 0B60h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		public procs__seeds
procs__seeds	dq ?			; DATA XREF: procs___elabb+4w
					; procs___elabb+Ew ...
		align 10h
_bss		ends

; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_rodata		segment	para public 'CONST' use64
		assume cs:_rodata
		;org 0B70h
		public procs__e1E
procs__e1E	db 'PROCS.E1',0         ; DATA XREF: .data:0000000000000AA8o
					; .rodata:procs__R2so
		align 20h
		public procs__R2s
procs__R2s	dq offset procs__e1E	; "PROCS.E1"
		align 10h
		public procs__e2E
procs__e2E	db 'PROCS.E2',0         ; DATA XREF: .data:0000000000000AE8o
					; .rodata:procs__R5so
		align 20h
		public procs__R5s
procs__R5s	dq offset procs__e2E	; "PROCS.E2"
		align 10h
		public procs__e3E
procs__e3E	db 'PROCS.E3',0         ; DATA XREF: .data:0000000000000B28o
					; .rodata:procs__R8so
		align 20h
		public procs__R8s
procs__R8s	dq offset procs__e3E	; "PROCS.E3"
		public procs__max
procs__max	db    0
		db    0
		db    0
		db    1
		db    0
		db    0
		db    0
		db    0
_rodata		ends

; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_gcc_except_table segment dword	public 'CONST' use64
		assume cs:_gcc_except_table
		;org 0BD0h
unk_BD0		db 0FFh			; DATA XREF: procs__a+1Fo
		db    3
		db  1Dh
		db    1
		db    8
		db    0
		db    5
		db    1
		db    0
		db    2
		db    0
		db    3
		db    0
		db    3
		db    0
		db    2
		db  7Dh	; }
		db    1
		db  7Dh	; }
		db    0
		dd offset procs__e3
		dd offset procs__e2
		dd offset procs__e1
unk_BF0		db 0FFh			; DATA XREF: procs(bool)+1Fo
		db    3
		db  1Dh
		db    1
		db    8
		db    0
		db    5
		db    1
		db    0
		db    2
		db    0
		db    3
		db    0
		db    3
		db    0
		db    2
		db  7Dh	; }
		db    1
		db  7Dh	; }
		db    0
		dd offset procs__e3
		dd offset procs__e2
		dd offset procs__e1
unk_C10		db 0FFh			; DATA XREF: procs(char)+1Fo
		db    3
		db  1Dh
		db    1
		db    8
		db    0
		db    5
		db    1
		db    0
		db    2
		db    0
		db    3
		db    0
		db    3
		db    0
		db    2
		db  7Dh	; }
		db    1
		db  7Dh	; }
		db    0
		dd offset procs__e3
		dd offset procs__e2
		dd offset procs__e1
_gcc_except_table ends

; ===========================================================================

; Segment type:	Externs
; extern
		extrn __gnat_personality_sj0 ; DATA XREF: procs__a+14o
					; procs(bool)+14o ...
		extrn _Unwind_SjLj_Register:near ; CODE	XREF: procs__a+4Cp
					; procs(bool)+4Cp ...
		extrn _Unwind_SjLj_Unregister:near ; CODE XREF:	procs__a+33Cp
					; procs(bool)+33Cp ...
		extrn mt__gen_u32:near	; CODE XREF: procs__a+80p
					; procs(bool)+80p ...
		extrn _Unwind_SjLj_Resume:near ; CODE XREF: procs__a+169p
					; procs__a+2D4p ...
		extrn __gnat_begin_handler:near	; CODE XREF: procs__a+188p
					; procs__a+1F3p ...
		extrn system__soft_links__abort_undefer:near ; CODE XREF: procs__a+194p
					; procs__a+1FFp ...
		extrn __gnat_end_handler:near ;	CODE XREF: procs__a+1C5p
					; procs__a+230p ...
		extrn mt__init_genrand__2:near ; CODE XREF: procs___elabb+40p
		extrn system__exception_table__register_exception:near
					; CODE XREF: procs___elabs+9p
					; procs___elabs+13p ...


		end
