Function at 0x18004498c
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov r15, qword [rcx + 0x10]
xor r11d, r11d
mov r10, qword [rcx]
mov r12d, r8d
mov qword [rsp + 0x70], r15
mov r14, rdx
mov dword [rbp + 0x70], r11d
mov rsi, rcx
mov dword [rbp + 0x88], r11d
mov r13d, r8d
mov qword [rsp + 0x58], r10
test r15, r15
jne 0x1800449e5
xor eax, eax
jmp 0x180045840
test r14, r14
je 0x180045810
movzx edi, byte [rdx]
mov ecx, edi
cmp edi, 0x59
ja 0x180044ef4
je 0x180044ebd
cmp edi, 0x4c
ja 0x180044da1
je 0x180044e1b
cmp edi, 0x3e
ja 0x180044bc7
je 0x180044b5e
sub ecx, 0x13
je 0x180044f76
sub ecx, 1
je 0x180044f52
sub ecx, 4
je 0x180044b4a
sub ecx, 0xe
je 0x180044ae3
cmp ecx, 0x13
jne 0x180045501
cmp qword [rsi + 0x1c8], r11
jne 0x180044a6a
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rsi
call fcn.18001cef0
jmp 0x1800449de
mov al, byte [rdx + 1]
cmp al, 2
jne 0x180044a89
mov rax, qword [rsi + 0x1c0]
mov rcx, rsi
test rax, rax
cmovne rcx, rax
mov byte [rcx + 0x21], 1
mov al, byte [rdx + 1]
mov rbx, qword [rdx + 8]
cmp al, 4
jne 0x180044ac0
mov r9d, 4
lea edx, [r9 + 0x14]
xor r8d, r8d
mov dword [rsp + 0x20], r11d
mov rcx, r15
call fcn.180033d78
xor r9d, r9d
mov r8, rbx
mov edx, eax
mov rcx, r15
call fcn.18003432c
jmp 0x180045827
mov byte [rsp + 0x28], r11b
mov r9, rbx
movsx r8d, al
mov edx, 0x713
mov rcx, rsi
mov byte [rsp + 0x20], r11b
call fcn.18004e988
jmp 0x180045827
mov rdx, qword [rdx + 0x10]
mov rcx, rsi
call fcn.18004498c
xor ebx, ebx
mov r13d, eax
cmp eax, r12d
je 0x180044b11
mov r9d, r12d
mov dword [rsp + 0x20], ebx
mov r8d, eax
lea edx, [rbx + 0x22]
mov rcx, r15
call fcn.180033d78
mov r13d, r12d
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.18004ac1c
movsx r9d, al
mov r8d, r12d
mov edx, 0x28
mov dword [rsp + 0x20], ebx
mov rcx, r15
call fcn.180033d78
mov r8d, 1
mov edx, r13d
mov rcx, rsi
call fcn.18004469c
jmp 0x180045827
mov rdx, qword [rdx + 0x10]
mov rcx, rsi
call fcn.18004498c
mov r13d, eax
jmp 0x180045827
mov rbx, qword [rdx + 0x40]
mov r9d, r12d
movsx r8d, word [rdx + 0x30]
inc r8d
mov dword [rsp + 0x20], r11d
movsx ecx, word [rbx + 0x42]
inc ecx
imul ecx, dword [rdx + 0x2c]
mov edx, 0x84
add r8d, ecx
mov rcx, r15
call fcn.180033d78
xor edx, edx
cmp word [r14 + 0x30], dx
jl 0x180045827
movsx rax, word [r14 + 0x30]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
add rcx, rcx
cmp byte [rax + rcx*8 + 0x29], 0x45
jne 0x180045827
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, r12d
lea edx, [r9 + 0x27]
jmp 0x18004581f
sub ecx, 0x47
je 0x180044ebd
sub ecx, 1
je 0x180044ebd
sub ecx, 1
je 0x1800453bd
sub ecx, 1
je 0x180044c70
cmp ecx, 1
jne 0x180045501
mov rcx, r15
call fcn.180033eb4
mov rcx, r15
mov ebx, eax
call fcn.180033eb4
mov edi, eax
mov r9d, r12d
xor eax, eax
xor r8d, r8d
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x1c]
call fcn.180033d78
mov r9d, edi
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.180043f90
xor r14d, r14d
mov r9d, r12d
mov rcx, r15
mov dword [rsp + 0x20], r14d
lea edx, [r14 + 0x19]
lea r8d, [r14 + 1]
call fcn.180033d78
mov edx, ebx
mov rcx, r15
call fcn.180033f18
xor r9d, r9d
mov dword [rsp + 0x20], r14d
mov r8d, r12d
lea edx, [r14 + 0x25]
call fcn.180033d78
mov edx, edi
jmp 0x180045148
mov rax, qword [rdx + 0x20]
lea r8, [rbp + 0x70]
mov rbx, qword [rdx + 0x10]
mov rcx, rsi
mov rdx, rbx
mov qword [rsp + 0x48], rbx
mov rax, qword [rax + 8]
mov qword [rsp + 0x50], rax
mov rdi, qword [rax]
mov qword [rsp + 0x58], rdi
call fcn.1800458dc
lea r8, [rbp + 0x88]
mov dword [rbp + 0x80], eax
mov rdx, rdi
mov rcx, rsi
call fcn.1800458dc
mov cl, byte [rsi + 0x1f]
mov edx, eax
test cl, cl
jne 0x180044cc7
inc dword [rsi + 0x54]
mov r14d, dword [rsi + 0x54]
jmp 0x180044cd7
sub cl, 1
movzx eax, cl
mov byte [rsi + 0x1f], al
mov r14d, dword [rsi + rax*4 + 0x24]
jne 0x180044cdf
inc dword [rsi + 0x54]
mov edi, dword [rsi + 0x54]
jmp 0x180044ceb
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov edi, dword [rsi + rax*4 + 0x24]
mov eax, dword [rbp + 0x80]
mov r9d, 0x53
mov r8, qword [rsp + 0x58]
mov rcx, rsi
mov dword [rsp + 0x38], 0x20
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], edx
mov rdx, rbx
mov dword [rsp + 0x20], eax
call fcn.180041fc0
mov rbx, qword [rsp + 0x50]
mov rcx, rsi
mov edx, dword [rbp + 0x88]
mov rbx, qword [rbx + 0x28]
call fcn.1800468a8
lea r8, [rbp + 0x88]
mov rdx, rbx
call fcn.1800458dc
mov rdx, qword [rsp + 0x48]
mov r9d, 0x51
mov dword [rsp + 0x38], 0x20
mov r8, rbx
mov dword [rsp + 0x30], edi
mov rcx, rsi
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x80]
mov dword [rsp + 0x20], eax
call fcn.180041fc0
mov r9d, edi
mov dword [rsp + 0x20], r12d
mov r8d, r14d
mov edx, 0x48
mov rcx, r15
call fcn.180033d78
mov edx, r14d
mov rcx, rsi
call fcn.1800468a8
mov edx, edi
call fcn.1800468a8
jmp 0x180045827
cmp edi, 0x52
ja 0x180044e9c
je 0x180044dc9
sub ecx, 0x4d
je 0x180044e1b
sub ecx, 1
je 0x180044dc9
sub ecx, 1
je 0x180044dc9
sub ecx, 1
je 0x180044dc9
cmp ecx, 1
jne 0x180045501
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.1800458dc
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.1800458dc
mov r9d, edi
mov dword [rsp + 0x38], 0x20
mov r8, qword [r14 + 0x18]
mov rcx, rsi
mov rdx, qword [r14 + 0x10]
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.180041fc0
jmp 0x180045827
mov edx, 0x19
mov dword [rsp + 0x20], r11d
mov r9d, r12d
mov rcx, r15
lea r8d, [rdx - 0x18]
call fcn.180033d78
mov rdx, qword [r14 + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.1800458dc
xor r14d, r14d
xor r9d, r9d
mov r8d, eax
mov dword [rsp + 0x20], r14d
mov edx, edi
mov rcx, r15
call fcn.180033d78
mov r9d, r12d
mov ebx, eax
xor r8d, r8d
mov dword [rsp + 0x20], r14d
lea edx, [r14 + 0x19]
mov rcx, r15
call fcn.180033d78
mov edx, dword [r15 + 0x3c]
cmp edx, ebx
jbe 0x180044e8d
mov rax, qword [r15 + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [r15 + 0x3c]
mov rax, qword [r15 + 0x30]
lea ecx, [rdx - 1]
mov dword [rax + 0x64], ecx
jmp 0x180045827
sub ecx, 0x53
je 0x180044dc9
sub ecx, 2
je 0x180044ebd
sub ecx, 1
je 0x180044ebd
sub ecx, 1
je 0x180044ebd
cmp ecx, 1
jne 0x180045501
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.1800458dc
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.1800458dc
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, edi
jmp 0x18004581f
mov r8d, 0x85
cmp edi, r8d
ja 0x180044fad
je 0x180044f96
cmp edi, 0x5f
ja 0x180044f1e
je 0x180045741
sub ecx, 0x5a
je 0x180044ebd
sub ecx, 1
jmp 0x180044ea8
sub ecx, 0x60
je 0x180044f76
sub ecx, 1
je 0x180044f65
sub ecx, 4
je 0x180045810
sub ecx, 0x12
je 0x180044f52
cmp ecx, 0xd
jne 0x180045501
xor r8d, r8d
mov r9d, r12d
mov rcx, rsi
call fcn.180044478
jmp 0x180045827
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.180043ae4
jmp 0x180044b56
mov rbx, qword [rdx + 8]
mov r9d, r12d
mov edx, 0x61
jmp 0x180044a9b
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.1800458dc
xor ebx, ebx
mov r8d, eax
mov dword [rsp + 0x20], ebx
mov edx, edi
jmp 0x18004581c
xor r8d, r8d
mov rdx, qword [rdx + 8]
mov r9d, r12d
mov rcx, r15
call fcn.1800443ac
jmp 0x180045827
mov eax, 0x9b
cmp edi, eax
ja 0x1800454da
je 0x1800454a2
sub ecx, 0x86
je 0x180045441
sub ecx, 1
je 0x1800453fb
sub ecx, 0xd
je 0x1800453bd
sub ecx, 5
je 0x180045011
cmp ecx, 1
jne 0x180045501
mov r9d, dword [rdx + 0x2c]
test r9d, r9d
jns 0x1800457ee
cmp dword [rsi + 0x68], r11d
jle 0x1800457ea
movsx r13d, word [rdx + 0x30]
add r13d, dword [rsi + 0x68]
jmp 0x180045827
test dword [rdx + 4], 0x4000
mov cl, byte [r10 + 0x4e]
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x50], r11
je 0x180045046
mov qword [rsp + 0x60], r11
mov ebx, r11d
mov rax, qword [rdx + 8]
mov qword [rsp + 0x68], rax
mov rdi, rax
test rax, rax
jne 0x180045058
mov edi, r11d
jmp 0x18004506d
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18004502d
mov ebx, dword [rax]
jmp 0x180045030
cmp byte [rax], r11b
je 0x180045065
inc rdi
cmp byte [rdi], r11b
jne 0x18004505d
sub edi, eax
and edi, 0x3fffffff
mov byte [rsp + 0x28], r11b
mov r9d, ebx
mov byte [rsp + 0x20], cl
mov r8d, edi
mov rcx, r10
mov rdx, rax
call fcn.18004f564
xor ecx, ecx
mov qword [rsp + 0x48], rax
mov r10, rax
test rax, rax
je 0x1800453a1
cmp qword [rax + 0x18], rcx
je 0x1800453a1
mov eax, 0x200
test word [r10 + 2], ax
je 0x180045155
mov rcx, r15
call fcn.180033eb4
mov rdi, qword [rsp + 0x60]
mov r8d, r12d
mov rcx, rsi
mov dword [rbp + 0x80], eax
mov rdx, qword [rdi + 8]
mov rdx, qword [rdx]
call fcn.1800459dc
cmp ebx, 1
jle 0x180045140
lea r13d, [rbx - 1]
mov r14d, 0x28
mov ebx, dword [rbp + 0x80]
xor eax, eax
mov r9d, ebx
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r15
lea edx, [rax + 0x4d]
call fcn.180033d78
mov r8d, 1
mov edx, r12d
mov rcx, rsi
call fcn.18004469c
inc dword [rsi + 0x70]
mov r8d, r12d
mov rdx, qword [rdi + 8]
mov rdx, qword [rdx + r14]
call fcn.1800459dc
mov rcx, rsi
call fcn.1800446ec
lea r14, [r14 + 0x28]
sub r13, 1
jne 0x1800450ee
mov r13d, r12d
jmp 0x180045146
mov ebx, dword [rbp + 0x80]
mov edx, ebx
mov rcx, r15
call fcn.180033f18
jmp 0x180045827
mov eax, 0x400
test word [r10 + 2], ax
je 0x18004517d
mov rdi, qword [rsp + 0x60]
mov r8d, r12d
mov rcx, rsi
mov rdx, qword [rdi + 8]
mov rdx, qword [rdx]
call fcn.1800459dc
jmp 0x180045827
mov dword [rsp + 0x44], ecx
mov eax, ecx
test ebx, ebx
jle 0x18004521b
mov rdi, qword [rsp + 0x60]
xor r12d, r12d
mov r15d, r12d
mov r13d, ecx
mov r14d, eax
cmp eax, 0x20
jae 0x1800451c6
mov rax, qword [rdi + 8]
xor r8d, r8d
mov rcx, qword [r15 + rax]
lea edx, [r8 + 1]
call fcn.1800433c0
mov r10, qword [rsp + 0x48]
test eax, eax
mov eax, dword [rsp + 0x44]
je 0x1800451c6
bts r13d, eax
test byte [r10 + 2], 0x20
je 0x1800451ee
test r14, r14
jne 0x1800451ee
mov rdx, qword [rdi + 8]
mov rcx, rsi
mov rdx, qword [rdx + r15]
call fcn.180041dcc
mov r10, qword [rsp + 0x48]
mov r14, rax
mov eax, dword [rsp + 0x44]
inc eax
add r15, 0x28
mov dword [rsp + 0x44], eax
cmp eax, ebx
jl 0x18004519c
mov r12d, dword [rbp + 0x80]
xor ecx, ecx
mov r15, qword [rsp + 0x70]
mov qword [rsp + 0x50], r14
mov r14, qword [rbp + 0x78]
mov dword [rsp + 0x40], r13d
mov r13d, r12d
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x18004529a
cmp dword [rsp + 0x40], ecx
je 0x18004523e
mov eax, dword [rsi + 0x54]
lea edi, [rax + 1]
add eax, ebx
mov dword [rsi + 0x54], eax
mov dword [rbp + 0x80], edi
jmp 0x180045255
mov edx, ebx
mov rcx, rsi
call fcn.1800468e0
mov rdx, qword [rsp + 0x60]
mov edi, eax
mov dword [rbp + 0x80], eax
test byte [r10 + 2], 0xc0
je 0x180045278
mov rcx, qword [rdx + 8]
mov r8, qword [rcx]
mov cl, byte [r8]
add cl, 0x66
test cl, 0xfd
jne 0x180045278
mov al, byte [r10 + 2]
and al, 0xc0
mov byte [r8 + 0x36], al
inc dword [rsi + 0x70]
mov r9b, 3
mov r8d, edi
mov rcx, rsi
call fcn.180045a38
mov rcx, rsi
call fcn.1800446ec
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
jmp 0x1800452a0
mov dword [rbp + 0x80], ecx
cmp ebx, 2
jl 0x1800452cd
test byte [r14 + 4], 0x80
je 0x1800452d1
mov r9, qword [rdx + 8]
mov r9, qword [r9 + 0x28]
mov rdx, qword [rsp + 0x48]
mov r8d, ebx
mov rcx, qword [rsp + 0x58]
call fcn.180067478
mov rdi, rax
xor ecx, ecx
jmp 0x1800452df
test ebx, ebx
jle 0x1800452da
mov r9, qword [rdx + 8]
mov r9, qword [r9]
jmp 0x1800452b4
mov rdi, qword [rsp + 0x48]
test byte [rdi + 2], 0x20
je 0x180045321
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x1800452f8
mov rax, qword [rsp + 0x58]
mov r14, qword [rax + 0x10]
xor r9d, r9d
mov dword [rsp + 0x20], ecx
xor r8d, r8d
mov rcx, r15
lea edx, [r9 + 0x24]
call fcn.180033d78
mov r9d, 0xfffffffc
mov r8, r14
mov edx, eax
mov rcx, r15
call fcn.18003432c
mov r14d, dword [rbp + 0x80]
mov edx, 1
mov dword [rsp + 0x20], r12d
mov r9d, r14d
mov r12d, dword [rsp + 0x40]
mov rcx, r15
mov r8d, r12d
call fcn.180033d78
mov r9d, 0xfffffffb
mov r8, rdi
mov edx, eax
mov rcx, r15
call fcn.18003432c
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x18004536d
movsxd rax, dword [r15 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], bl
test ebx, ebx
je 0x180045827
test r12d, r12d
jne 0x180045827
mov r8d, ebx
mov edx, r14d
mov rcx, rsi
call fcn.18004469c
cmp ebx, dword [rsi + 0x44]
jle 0x180045827
mov dword [rsi + 0x44], ebx
mov dword [rsi + 0x48], r14d
jmp 0x180045827
mov r9, qword [rsp + 0x68]
lea rdx, str.unknown_function:__.s__
mov r8d, edi
mov rcx, rsi
call fcn.18001cef0
jmp 0x180045827
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.1800458dc
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.1800458dc
sub edi, 0x49
mov dword [rsp + 0x38], 0xa0
neg edi
sbb r9d, r9d
add r9d, 0x4f
jmp 0x180044df9
movsx r8d, word [rdx + 0x30]
mov r9d, r12d
mov edx, 0x1f
mov dword [rsp + 0x20], r11d
mov rcx, r15
call fcn.180033d78
mov rax, qword [r14 + 8]
xor ebx, ebx
cmp byte [rax + 1], bl
je 0x180045827
movsx rax, word [r14 + 0x30]
lea r9d, [rbx - 2]
mov r8, qword [rsi + 0x208]
or edx, 0xffffffff
mov r8, qword [r8 + rax*8 - 8]
jmp 0x180044ab3
mov rdx, qword [rdx + 8]
add rdx, 2
mov rax, rdx
jne 0x180045453
mov eax, r11d
jmp 0x180045467
cmp byte [rdx], r11b
je 0x180045460
inc rax
cmp byte [rax], r11b
jne 0x180045458
sub eax, edx
and eax, 0x3fffffff
mov rcx, qword [r15]
lea ebx, [rax - 1]
mov r8d, ebx
call fcn.18001dc48
mov rdi, rax
mov r9d, r12d
mov eax, ebx
mov rcx, r15
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
xor eax, eax
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x1e]
call fcn.180033d78
or r9d, 0xffffffff
mov r8, rdi
jmp 0x180044ab1
mov rdx, qword [rdx + 0x38]
test rdx, rdx
jne 0x1800454c3
mov r8, qword [r14 + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rsi
call fcn.18001cef0
jmp 0x180045827
movsx rax, word [r14 + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x30]
mov r13d, dword [rax + rcx*8 + 0x10]
jmp 0x180045827
sub edi, 0x9c
je 0x1800457b0
sub edi, 1
je 0x180045749
sub edi, 1
je 0x180045741
cmp edi, 1
je 0x180045738
mov rcx, qword [rdx + 0x20]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x58], r11
mov rax, qword [rcx + 8]
mov edi, dword [rcx]
mov rcx, r15
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], edi
call fcn.180033eb4
mov rbx, qword [r14 + 0x10]
xor r14d, r14d
mov dword [rbp + 0x80], eax
test rbx, rbx
je 0x18004559b
movups xmm0, xmmword [rbx]
lea r8, [rbp + 0x70]
mov rdx, rbx
mov rcx, rsi
movaps xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [rbx + 0x20]
movaps xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rbx + 0x30]
movaps xmmword [rbp - 0x50], xmm1
movsd xmm0, qword [rbx + 0x40]
movsd qword [rbp - 0x40], xmm0
call fcn.1800458dc
mov cl, byte [rbp - 0x80]
btr dword [rbp - 0x7c], 0xc
mov dword [rbp - 0x54], eax
lea rax, [rbp - 0x80]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x58], rax
mov byte [rbp - 0x4a], cl
mov byte [rbp - 0x80], 0x9f
mov byte [rbp - 0x30], 0x4f
mov dword [rbp + 0x70], r14d
lea eax, [rdi - 1]
test eax, eax
jle 0x180045711
test rbx, rbx
je 0x180045682
mov rdi, qword [rsp + 0x48]
lea ecx, [rax - 1]
mov r13d, dword [rbp + 0x80]
mov r14d, 0x10
shr ecx, 1
inc ecx
mov qword [rsp + 0x50], rcx
inc dword [rsi + 0x70]
mov rcx, r15
mov rax, qword [rdi]
mov qword [rbp - 0x18], rax
call fcn.180033eb4
mov rdx, qword [rsp + 0x58]
mov r9d, r14d
mov r8d, eax
mov rcx, rsi
mov ebx, eax
call fcn.180045f88
mov rdx, qword [rdi + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.1800459dc
xor eax, eax
mov r9d, r13d
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov edx, r14d
mov rcx, r15
call fcn.180033d78
mov rcx, rsi
call fcn.1800446ec
mov edx, ebx
mov rcx, r15
call fcn.180033f18
sub qword [rsp + 0x50], 1
lea rdi, [rdi + 0x50]
jne 0x1800455cd
mov edi, dword [rsp + 0x40]
mov r13d, r12d
mov ebx, dword [rbp + 0x80]
xor r14d, r14d
test dil, 1
je 0x18004571c
inc dword [rsi + 0x70]
mov r8d, r12d
mov rdx, qword [rsp + 0x68]
movsxd rax, edi
mov rdx, qword [rdx + 8]
lea rcx, [rax + rax*4]
mov rdx, qword [rdx + rcx*8 - 0x28]
mov rcx, rsi
call fcn.1800459dc
mov rcx, rsi
call fcn.1800446ec
jmp 0x180045146
movsxd r14, eax
test r14, r14
jle 0x18004563f
mov r13, qword [rsp + 0x48]
dec r14
shr r14, 1
inc r14
inc dword [rsi + 0x70]
mov rcx, r15
mov rbx, qword [r13]
call fcn.180033eb4
mov r9d, 0x10
mov r8d, eax
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.180045f88
mov rdx, qword [r13 + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.1800459dc
mov ebx, dword [rbp + 0x80]
xor eax, eax
mov r9d, ebx
mov dword [rsp + 0x20], eax
xor r8d, r8d
mov rcx, r15
lea edx, [rax + 0x10]
call fcn.180033d78
mov rcx, rsi
call fcn.1800446ec
mov edx, edi
mov rcx, r15
call fcn.180033f18
lea r13, [r13 + 0x50]
sub r14, 1
jne 0x180045698
mov edi, dword [rsp + 0x40]
mov r13d, r12d
jmp 0x180045645
mov ebx, dword [rbp + 0x80]
jmp 0x180045648
xor r8d, r8d
mov dword [rsp + 0x20], r14d
mov r9d, r12d
mov rcx, r15
lea edx, [r8 + 0x1c]
call fcn.180033d78
jmp 0x180045146
mov r13d, dword [rdx + 0x2c]
jmp 0x180045827
mov r8d, r12d
jmp 0x180044b4a
mov rdx, qword [rdx + 0x10]
cmp byte [rdx], 0x84
jne 0x18004575d
mov r8d, 1
jmp 0x180044f42
cmp byte [rdx], r8b
jne 0x18004576d
mov r8d, 1
jmp 0x180044f99
lea r8, [rbp + 0x70]
mov byte [rbp - 0x80], 0x84
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x7c], 0x4400
mov rcx, rsi
call fcn.1800458dc
mov rdx, qword [r14 + 0x10]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.1800458dc
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, 0x5a
jmp 0x18004581f
mov rcx, qword [rdx + 0x38]
movsx rax, word [rdx + 0x32]
shl rax, 5
add rax, qword [rcx + 0x20]
cmp byte [rcx], r11b
jne 0x1800457cc
mov r13d, dword [rax + 0x14]
jmp 0x180045827
cmp byte [rcx + 1], r11b
je 0x180044fec
mov r9d, dword [rax + 0x10]
mov edx, 0x2f
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], r12d
jmp 0x18004581f
mov r9d, dword [rsi + 0x6c]
mov al, byte [rdx + 0x36]
mov rcx, rsi
movsx r8d, word [rdx + 0x30]
mov rdx, qword [rdx + 0x40]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r12d
call fcn.180044814
jmp 0x180044b56
xor r8d, r8d
mov dword [rsp + 0x20], r11d
lea edx, [r8 + 0x1c]
mov r9d, r12d
mov rcx, r15
call fcn.180033d78
mov edx, dword [rbp + 0x70]
mov rcx, rsi
call fcn.1800468a8
mov edx, dword [rbp + 0x88]
call fcn.1800468a8
mov eax, r13d
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret