Function at 0x180044ad8
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 0x180044b31
xor eax, eax
jmp 0x18004598c
test r14, r14
je 0x18004595c
movzx edi, byte [rdx]
mov ecx, edi
cmp edi, 0x59
ja 0x180045040
je 0x180045009
cmp edi, 0x4c
ja 0x180044eed
je 0x180044f67
cmp edi, 0x3e
ja 0x180044d13
je 0x180044caa
sub ecx, 0x13
je 0x1800450c2
sub ecx, 1
je 0x18004509e
sub ecx, 4
je 0x180044c96
sub ecx, 0xe
je 0x180044c2f
cmp ecx, 0x13
jne 0x18004564d
cmp qword [rsi + 0x1c8], r11
jne 0x180044bb6
lea rdx, str.RAISE___may_only_be_used_within_a_trigger_program
mov rcx, rsi
call fcn.18001d010
jmp 0x180044b2a
mov al, byte [rdx + 1]
cmp al, 2
jne 0x180044bd5
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 0x180044c0c
mov r9d, 4
lea edx, [r9 + 0x14]
xor r8d, r8d
mov dword [rsp + 0x20], r11d
mov rcx, r15
call fcn.180033e88
xor r9d, r9d
mov r8, rbx
mov edx, eax
mov rcx, r15
call fcn.18003443c
jmp 0x180045973
mov byte [rsp + 0x28], r11b
mov r9, rbx
movsx r8d, al
mov edx, 0x713
mov rcx, rsi
mov byte [rsp + 0x20], r11b
call fcn.18004eac4
jmp 0x180045973
mov rdx, qword [rdx + 0x10]
mov rcx, rsi
call fcn.180044ad8
xor ebx, ebx
mov r13d, eax
cmp eax, r12d
je 0x180044c5d
mov r9d, r12d
mov dword [rsp + 0x20], ebx
mov r8d, eax
lea edx, [rbx + 0x22]
mov rcx, r15
call fcn.180033e88
mov r13d, r12d
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.18004ad60
movsx r9d, al
mov r8d, r12d
mov edx, 0x28
mov dword [rsp + 0x20], ebx
mov rcx, r15
call fcn.180033e88
mov r8d, 1
mov edx, r13d
mov rcx, rsi
call fcn.1800447e8
jmp 0x180045973
mov rdx, qword [rdx + 0x10]
mov rcx, rsi
call fcn.180044ad8
mov r13d, eax
jmp 0x180045973
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.180033e88
xor edx, edx
cmp word [r14 + 0x30], dx
jl 0x180045973
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 0x180045973
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, r12d
lea edx, [r9 + 0x27]
jmp 0x18004596b
sub ecx, 0x47
je 0x180045009
sub ecx, 1
je 0x180045009
sub ecx, 1
je 0x180045509
sub ecx, 1
je 0x180044dbc
cmp ecx, 1
jne 0x18004564d
mov rcx, r15
call fcn.180033fc4
mov rcx, r15
mov ebx, eax
call fcn.180033fc4
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.180033e88
mov r9d, edi
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.1800440dc
xor r14d, r14d
mov r9d, r12d
mov rcx, r15
mov dword [rsp + 0x20], r14d
lea edx, [r14 + 0x19]
lea r8d, [r14 + 1]
call fcn.180033e88
mov edx, ebx
mov rcx, r15
call fcn.180034028
xor r9d, r9d
mov dword [rsp + 0x20], r14d
mov r8d, r12d
lea edx, [r14 + 0x25]
call fcn.180033e88
mov edx, edi
jmp 0x180045294
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.180045a28
lea r8, [rbp + 0x88]
mov dword [rbp + 0x80], eax
mov rdx, rdi
mov rcx, rsi
call fcn.180045a28
mov cl, byte [rsi + 0x1f]
mov edx, eax
test cl, cl
jne 0x180044e13
inc dword [rsi + 0x54]
mov r14d, dword [rsi + 0x54]
jmp 0x180044e23
sub cl, 1
movzx eax, cl
mov byte [rsi + 0x1f], al
mov r14d, dword [rsi + rax*4 + 0x24]
jne 0x180044e2b
inc dword [rsi + 0x54]
mov edi, dword [rsi + 0x54]
jmp 0x180044e37
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.18004210c
mov rbx, qword [rsp + 0x50]
mov rcx, rsi
mov edx, dword [rbp + 0x88]
mov rbx, qword [rbx + 0x28]
call fcn.1800469f4
lea r8, [rbp + 0x88]
mov rdx, rbx
call fcn.180045a28
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.18004210c
mov r9d, edi
mov dword [rsp + 0x20], r12d
mov r8d, r14d
mov edx, 0x48
mov rcx, r15
call fcn.180033e88
mov edx, r14d
mov rcx, rsi
call fcn.1800469f4
mov edx, edi
call fcn.1800469f4
jmp 0x180045973
cmp edi, 0x52
ja 0x180044fe8
je 0x180044f15
sub ecx, 0x4d
je 0x180044f67
sub ecx, 1
je 0x180044f15
sub ecx, 1
je 0x180044f15
sub ecx, 1
je 0x180044f15
cmp ecx, 1
jne 0x18004564d
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.180045a28
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.180045a28
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.18004210c
jmp 0x180045973
mov edx, 0x19
mov dword [rsp + 0x20], r11d
mov r9d, r12d
mov rcx, r15
lea r8d, [rdx - 0x18]
call fcn.180033e88
mov rdx, qword [r14 + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.180045a28
xor r14d, r14d
xor r9d, r9d
mov r8d, eax
mov dword [rsp + 0x20], r14d
mov edx, edi
mov rcx, r15
call fcn.180033e88
mov r9d, r12d
mov ebx, eax
xor r8d, r8d
mov dword [rsp + 0x20], r14d
lea edx, [r14 + 0x19]
mov rcx, r15
call fcn.180033e88
mov edx, dword [r15 + 0x3c]
cmp edx, ebx
jbe 0x180044fd9
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 0x180045973
sub ecx, 0x53
je 0x180044f15
sub ecx, 2
je 0x180045009
sub ecx, 1
je 0x180045009
sub ecx, 1
je 0x180045009
cmp ecx, 1
jne 0x18004564d
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.180045a28
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.180045a28
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, edi
jmp 0x18004596b
mov r8d, 0x85
cmp edi, r8d
ja 0x1800450f9
je 0x1800450e2
cmp edi, 0x5f
ja 0x18004506a
je 0x18004588d
sub ecx, 0x5a
je 0x180045009
sub ecx, 1
jmp 0x180044ff4
sub ecx, 0x60
je 0x1800450c2
sub ecx, 1
je 0x1800450b1
sub ecx, 4
je 0x18004595c
sub ecx, 0x12
je 0x18004509e
cmp ecx, 0xd
jne 0x18004564d
xor r8d, r8d
mov r9d, r12d
mov rcx, rsi
call fcn.1800445c4
jmp 0x180045973
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.180043c30
jmp 0x180044ca2
mov rbx, qword [rdx + 8]
mov r9d, r12d
mov edx, 0x61
jmp 0x180044be7
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.180045a28
xor ebx, ebx
mov r8d, eax
mov dword [rsp + 0x20], ebx
mov edx, edi
jmp 0x180045968
xor r8d, r8d
mov rdx, qword [rdx + 8]
mov r9d, r12d
mov rcx, r15
call fcn.1800444f8
jmp 0x180045973
mov eax, 0x9b
cmp edi, eax
ja 0x180045626
je 0x1800455ee
sub ecx, 0x86
je 0x18004558d
sub ecx, 1
je 0x180045547
sub ecx, 0xd
je 0x180045509
sub ecx, 5
je 0x18004515d
cmp ecx, 1
jne 0x18004564d
mov r9d, dword [rdx + 0x2c]
test r9d, r9d
jns 0x18004593a
cmp dword [rsi + 0x68], r11d
jle 0x180045936
movsx r13d, word [rdx + 0x30]
add r13d, dword [rsi + 0x68]
jmp 0x180045973
test dword [rdx + 4], 0x4000
mov cl, byte [r10 + 0x4e]
mov dword [rsp + 0x40], r11d
mov qword [rsp + 0x50], r11
je 0x180045192
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 0x1800451a4
mov edi, r11d
jmp 0x1800451b9
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x180045179
mov ebx, dword [rax]
jmp 0x18004517c
cmp byte [rax], r11b
je 0x1800451b1
inc rdi
cmp byte [rdi], r11b
jne 0x1800451a9
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.18004f6a0
xor ecx, ecx
mov qword [rsp + 0x48], rax
mov r10, rax
test rax, rax
je 0x1800454ed
cmp qword [rax + 0x18], rcx
je 0x1800454ed
mov eax, 0x200
test word [r10 + 2], ax
je 0x1800452a1
mov rcx, r15
call fcn.180033fc4
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.180045b28
cmp ebx, 1
jle 0x18004528c
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.180033e88
mov r8d, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800447e8
inc dword [rsi + 0x70]
mov r8d, r12d
mov rdx, qword [rdi + 8]
mov rdx, qword [rdx + r14]
call fcn.180045b28
mov rcx, rsi
call fcn.180044838
lea r14, [r14 + 0x28]
sub r13, 1
jne 0x18004523a
mov r13d, r12d
jmp 0x180045292
mov ebx, dword [rbp + 0x80]
mov edx, ebx
mov rcx, r15
call fcn.180034028
jmp 0x180045973
mov eax, 0x400
test word [r10 + 2], ax
je 0x1800452c9
mov rdi, qword [rsp + 0x60]
mov r8d, r12d
mov rcx, rsi
mov rdx, qword [rdi + 8]
mov rdx, qword [rdx]
call fcn.180045b28
jmp 0x180045973
mov dword [rsp + 0x44], ecx
mov eax, ecx
test ebx, ebx
jle 0x180045367
mov rdi, qword [rsp + 0x60]
xor r12d, r12d
mov r15d, r12d
mov r13d, ecx
mov r14d, eax
cmp eax, 0x20
jae 0x180045312
mov rax, qword [rdi + 8]
xor r8d, r8d
mov rcx, qword [r15 + rax]
lea edx, [r8 + 1]
call fcn.18004350c
mov r10, qword [rsp + 0x48]
test eax, eax
mov eax, dword [rsp + 0x44]
je 0x180045312
bts r13d, eax
test byte [r10 + 2], 0x20
je 0x18004533a
test r14, r14
jne 0x18004533a
mov rdx, qword [rdi + 8]
mov rcx, rsi
mov rdx, qword [rdx + r15]
call fcn.180041f18
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 0x1800452e8
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 0x1800453e6
cmp dword [rsp + 0x40], ecx
je 0x18004538a
mov eax, dword [rsi + 0x54]
lea edi, [rax + 1]
add eax, ebx
mov dword [rsi + 0x54], eax
mov dword [rbp + 0x80], edi
jmp 0x1800453a1
mov edx, ebx
mov rcx, rsi
call fcn.180046a2c
mov rdx, qword [rsp + 0x60]
mov edi, eax
mov dword [rbp + 0x80], eax
test byte [r10 + 2], 0xc0
je 0x1800453c4
mov rcx, qword [rdx + 8]
mov r8, qword [rcx]
mov cl, byte [r8]
add cl, 0x66
test cl, 0xfd
jne 0x1800453c4
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.180045b84
mov rcx, rsi
call fcn.180044838
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
jmp 0x1800453ec
mov dword [rbp + 0x80], ecx
cmp ebx, 2
jl 0x180045419
test byte [r14 + 4], 0x80
je 0x18004541d
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.1800675dc
mov rdi, rax
xor ecx, ecx
jmp 0x18004542b
test ebx, ebx
jle 0x180045426
mov r9, qword [rdx + 8]
mov r9, qword [r9]
jmp 0x180045400
mov rdi, qword [rsp + 0x48]
test byte [rdi + 2], 0x20
je 0x18004546d
mov r14, qword [rsp + 0x50]
test r14, r14
jne 0x180045444
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.180033e88
mov r9d, 0xfffffffc
mov r8, r14
mov edx, eax
mov rcx, r15
call fcn.18003443c
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.180033e88
mov r9d, 0xfffffffb
mov r8, rdi
mov edx, eax
mov rcx, r15
call fcn.18003443c
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x1800454b9
movsxd rax, dword [r15 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], bl
test ebx, ebx
je 0x180045973
test r12d, r12d
jne 0x180045973
mov r8d, ebx
mov edx, r14d
mov rcx, rsi
call fcn.1800447e8
cmp ebx, dword [rsi + 0x44]
jle 0x180045973
mov dword [rsi + 0x44], ebx
mov dword [rsi + 0x48], r14d
jmp 0x180045973
mov r9, qword [rsp + 0x68]
lea rdx, str.unknown_function:__.s__
mov r8d, edi
mov rcx, rsi
call fcn.18001d010
jmp 0x180045973
mov rdx, qword [rdx + 0x10]
lea r8, [rbp + 0x70]
mov rcx, rsi
call fcn.180045a28
mov rdx, qword [r14 + 0x18]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.180045a28
sub edi, 0x49
mov dword [rsp + 0x38], 0xa0
neg edi
sbb r9d, r9d
add r9d, 0x4f
jmp 0x180044f45
movsx r8d, word [rdx + 0x30]
mov r9d, r12d
mov edx, 0x1f
mov dword [rsp + 0x20], r11d
mov rcx, r15
call fcn.180033e88
mov rax, qword [r14 + 8]
xor ebx, ebx
cmp byte [rax + 1], bl
je 0x180045973
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 0x180044bff
mov rdx, qword [rdx + 8]
add rdx, 2
mov rax, rdx
jne 0x18004559f
mov eax, r11d
jmp 0x1800455b3
cmp byte [rdx], r11b
je 0x1800455ac
inc rax
cmp byte [rax], r11b
jne 0x1800455a4
sub eax, edx
and eax, 0x3fffffff
mov rcx, qword [r15]
lea ebx, [rax - 1]
mov r8d, ebx
call fcn.18001dd68
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.180033e88
or r9d, 0xffffffff
mov r8, rdi
jmp 0x180044bfd
mov rdx, qword [rdx + 0x38]
test rdx, rdx
jne 0x18004560f
mov r8, qword [r14 + 8]
lea rdx, str.misuse_of_aggregate:__s__
mov rcx, rsi
call fcn.18001d010
jmp 0x180045973
movsx rax, word [r14 + 0x32]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x30]
mov r13d, dword [rax + rcx*8 + 0x10]
jmp 0x180045973
sub edi, 0x9c
je 0x1800458fc
sub edi, 1
je 0x180045895
sub edi, 1
je 0x18004588d
cmp edi, 1
je 0x180045884
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.180033fc4
mov rbx, qword [r14 + 0x10]
xor r14d, r14d
mov dword [rbp + 0x80], eax
test rbx, rbx
je 0x1800456e7
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.180045a28
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 0x18004585d
test rbx, rbx
je 0x1800457ce
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.180033fc4
mov rdx, qword [rsp + 0x58]
mov r9d, r14d
mov r8d, eax
mov rcx, rsi
mov ebx, eax
call fcn.1800460d4
mov rdx, qword [rdi + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.180045b28
xor eax, eax
mov r9d, r13d
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov edx, r14d
mov rcx, r15
call fcn.180033e88
mov rcx, rsi
call fcn.180044838
mov edx, ebx
mov rcx, r15
call fcn.180034028
sub qword [rsp + 0x50], 1
lea rdi, [rdi + 0x50]
jne 0x180045719
mov edi, dword [rsp + 0x40]
mov r13d, r12d
mov ebx, dword [rbp + 0x80]
xor r14d, r14d
test dil, 1
je 0x180045868
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.180045b28
mov rcx, rsi
call fcn.180044838
jmp 0x180045292
movsxd r14, eax
test r14, r14
jle 0x18004578b
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.180033fc4
mov r9d, 0x10
mov r8d, eax
mov rdx, rbx
mov rcx, rsi
mov edi, eax
call fcn.1800460d4
mov rdx, qword [r13 + 0x28]
mov r8d, r12d
mov rcx, rsi
call fcn.180045b28
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.180033e88
mov rcx, rsi
call fcn.180044838
mov edx, edi
mov rcx, r15
call fcn.180034028
lea r13, [r13 + 0x50]
sub r14, 1
jne 0x1800457e4
mov edi, dword [rsp + 0x40]
mov r13d, r12d
jmp 0x180045791
mov ebx, dword [rbp + 0x80]
jmp 0x180045794
xor r8d, r8d
mov dword [rsp + 0x20], r14d
mov r9d, r12d
mov rcx, r15
lea edx, [r8 + 0x1c]
call fcn.180033e88
jmp 0x180045292
mov r13d, dword [rdx + 0x2c]
jmp 0x180045973
mov r8d, r12d
jmp 0x180044c96
mov rdx, qword [rdx + 0x10]
cmp byte [rdx], 0x84
jne 0x1800458a9
mov r8d, 1
jmp 0x18004508e
cmp byte [rdx], r8b
jne 0x1800458b9
mov r8d, 1
jmp 0x1800450e5
lea r8, [rbp + 0x70]
mov byte [rbp - 0x80], 0x84
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x7c], 0x4400
mov rcx, rsi
call fcn.180045a28
mov rdx, qword [r14 + 0x10]
lea r8, [rbp + 0x88]
mov rcx, rsi
mov ebx, eax
call fcn.180045a28
mov r9d, ebx
mov dword [rsp + 0x20], r12d
mov r8d, eax
mov edx, 0x5a
jmp 0x18004596b
mov rcx, qword [rdx + 0x38]
movsx rax, word [rdx + 0x32]
shl rax, 5
add rax, qword [rcx + 0x20]
cmp byte [rcx], r11b
jne 0x180045918
mov r13d, dword [rax + 0x14]
jmp 0x180045973
cmp byte [rcx + 1], r11b
je 0x180045138
mov r9d, dword [rax + 0x10]
mov edx, 0x2f
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], r12d
jmp 0x18004596b
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.180044960
jmp 0x180044ca2
xor r8d, r8d
mov dword [rsp + 0x20], r11d
lea edx, [r8 + 0x1c]
mov r9d, r12d
mov rcx, r15
call fcn.180033e88
mov edx, dword [rbp + 0x70]
mov rcx, rsi
call fcn.1800469f4
mov edx, dword [rbp + 0x88]
call fcn.1800469f4
mov eax, r13d
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret