Function at 0x18031bea0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov r13, qword [rbp + 0xb0]
lea rax, [r8 + 0x68]
mov qword [rbp - 0x30], rax
xor r12d, r12d
mov rax, qword [rcx]
mov r15, rcx
mov qword [rbp - 0x50], rax
mov rbx, r8
movzx eax, byte [r13 + 0x34]
mov edi, r9d
mov r11, qword [r13 + 0x50]
lea r10d, [r12 + 1]
imul rcx, rax, 0x70
mov rax, qword [r8 + 8]
mov rsi, rdx
movsxd r8, dword [r8 + 0x294]
add rax, 8
add rax, rcx
mov qword [rbp - 0x28], r12
mov qword [rsp + 0x78], r11
mov edx, r12d
mov qword [rbp - 0x48], rax
mov r9d, dword [rax + 0x44]
mov dword [rsp + 0x40], r9d
test r8, r8
jle 0x18031bf57
mov ecx, r12d
lea rax, [rbx + 0x298]
nop dword [rax + rax]
cmp dword [rax], r9d
je 0x18031c04e
inc edx
inc rcx
add rax, 4
cmp rcx, r8
jl 0x18031bf40
mov rax, r12
not rax
mov ecx, edi
and rax, qword [rbp + 0xb8]
mov qword [r13 + 0x58], rax
mov r14d, dword [r15 + 0x44]
mov r10, qword [rbx + 0x60]
dec r14d
mov dword [r15 + 0x44], r14d
shr r10, cl
and r10d, 1
mov dword [r13 + 0x10], r14d
mov dword [r13 + 0xc], r14d
mov eax, dword [r15 + 0x44]
dec eax
mov qword [rsp + 0x58], r10
mov dword [r15 + 0x44], eax
mov dword [rsp + 0x6c], r14d
mov dword [rbp - 0x70], eax
mov dword [r13 + 0x18], eax
cmp byte [r13 + 0x34], r12b
jbe 0x18031bfdb
mov rax, qword [rbp - 0x48]
test byte [rax + 0x3c], 8
je 0x18031bfdb
mov r9d, dword [r15 + 0x38]
xor r8d, r8d
inc r9d
mov rcx, rsi
mov dword [r15 + 0x38], r9d
mov dword [r13], r9d
lea edx, [r8 + 0x45]
call fcn.1802bcf30
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x78]
mov edx, edi
test edi, edi
jle 0x18031bffc
movsxd rax, edx
lea rcx, [rax + rax*2]
shl rcx, 5
cmp dword [rcx + rbx + 0x398], r12d
jne 0x18031bffc
dec edx
test edx, edx
jg 0x18031bfe1
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rbp - 0x48]
shl rcx, 5
mov r8d, dword [rax + 0x40]
mov r9d, dword [rcx + rbx + 0x3a4]
test r8b, 0x10
je 0x18031c0fb
movsxd rcx, dword [rsi + 0x90]
mov ebx, dword [rax + 0x34]
mov edx, dword [rax + 0x30]
cmp dword [rsi + 0x94], ecx
jg 0x18031c05b
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, ebx
mov rcx, rsi
lea edx, [r9 + 0xd]
call fcn.1802bcd80
jmp 0x18031c088
mov ecx, edx
mov rax, r10
shl rax, cl
jmp 0x18031bf5a
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0xd
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r12
movsxd rdx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], edx
jg 0x18031c0bf
mov r9d, r14d
mov dword [rsp + 0x20], r12d
mov r8d, ebx
mov edx, 0xe
mov rcx, rsi
call fcn.1802bcd80
mov edx, eax
mov dword [r13 + 0x3c], eax
mov byte [r13 + 0x35], 0xb
jmp 0x18031e1cb
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0xe
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov dword [r13 + 0x3c], edx
mov byte [r13 + 0x35], 0xb
jmp 0x18031e1cb
mov edx, dword [r11 + 0x28]
mov eax, 0x400
test eax, edx
je 0x18031c7d6
movzx r14d, word [r11 + 0x2c]
lea ecx, [r14 + 2]
cmp ecx, 1
jne 0x18031c14c
movzx eax, byte [r15 + 0x1f]
test al, al
jne 0x18031c133
inc dword [r15 + 0x38]
mov eax, dword [r15 + 0x38]
mov dword [rbp + 0xa8], eax
jmp 0x18031c182
dec al
movzx eax, al
mov byte [r15 + 0x1f], al
mov eax, dword [r15 + rax*4 + 0xcc]
mov dword [rbp + 0xa8], eax
jmp 0x18031c182
mov edx, dword [r15 + 0x28]
mov r8d, dword [r15 + 0x2c]
mov dword [rbp + 0xa8], r8d
cmp ecx, edx
jg 0x18031c16f
lea eax, [rcx + r8]
sub edx, ecx
mov dword [r15 + 0x2c], eax
mov dword [r15 + 0x28], edx
jmp 0x18031c182
mov eax, dword [r15 + 0x38]
lea edx, [rax + 1]
add eax, ecx
mov dword [r15 + 0x38], eax
mov dword [rbp + 0xa8], edx
mov r15d, dword [r13 + 0xc]
mov ebx, r12d
test r14d, r14d
je 0x18031c215
mov r13d, dword [rbp + 0xa8]
mov rdi, r12
mov rsi, qword [rsp + 0x58]
add r13d, 2
mov r12, qword [rbp + 0xb0]
nop dword [rax]
mov rax, qword [r11 + 0x38]
mov rdx, qword [rdi + rax]
test rdx, rdx
je 0x18031c200
test byte [rdx + 0x14], 1
lea r8d, [rbx + r13]
mov rcx, qword [rbp + 0x90]
je 0x18031c1e9
mov dword [rsp + 0x28], r8d
mov r9d, ebx
mov r8, r12
mov dword [rsp + 0x20], esi
call fcn.18031a920
mov r15d, dword [r12 + 0x10]
jmp 0x18031c1fb
mov rdx, qword [rdx]
mov r9d, 1
mov rdx, qword [rdx + 0x18]
call fcn.18031b730
mov r11, qword [rsp + 0x78]
inc ebx
add rdi, 8
cmp ebx, r14d
jl 0x18031c1b0
mov rsi, qword [rbp + 0x98]
xor r12d, r12d
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [r11 + 0x18]
cmp dword [rsi + 0x94], ecx
jg 0x18031c24d
mov r9d, dword [rbp + 0xa8]
mov r8d, edx
mov edx, 0x45
mov dword [rsp + 0x20], r12d
mov rcx, rsi
call fcn.1802bcd80
mov r8d, dword [rbp + 0xa8]
jmp 0x18031c282
mov r8d, dword [rbp + 0xa8]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
movsxd rcx, dword [rsi + 0x90]
lea edx, [r8 + 1]
cmp dword [rsi + 0x94], ecx
jg 0x18031c2b6
mov r9d, edx
mov dword [rsp + 0x20], r12d
mov edx, 0x45
mov r8d, r14d
mov rcx, rsi
call fcn.1802bcd80
mov r8d, dword [rbp + 0xa8]
jmp 0x18031c2e4
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rax, qword [rsp + 0x78]
mov ebx, 0xffffffff
movsxd rdx, dword [rsi + 0x90]
mov ecx, 0xfffffff9
cmp byte [rax + 0x1c], 0
mov rdi, qword [rax + 0x20]
cmovne ebx, ecx
cmp dword [rsi + 0x94], edx
jg 0x18031c32c
mov r9d, r15d
mov dword [rsp + 0x20], r8d
mov r15d, dword [rsp + 0x40]
lea edx, [rcx + 0x10]
mov r8d, r15d
mov rcx, rsi
call fcn.1802bcd80
mov edx, eax
jmp 0x18031c363
mov r9d, dword [rsp + 0x40]
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 8], r15d
mov r15d, r9d
mov dword [rax + rcx*8], 9
mov dword [rax + rcx*8 + 4], r9d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r12
mov rcx, qword [rsi]
cmp byte [rcx + 0x61], 0
je 0x18031c378
mov r8, rdi
mov edx, ebx
call fcn.1802bdd60
jmp 0x18031c3b9
test edx, edx
jns 0x18031c384
mov edx, dword [rsi + 0x90]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
jne 0x18031c3ab
test rdi, rdi
je 0x18031c3b9
mov qword [rdx + 0x10], rdi
mov byte [rdx + 1], bl
jmp 0x18031c3b9
mov r9d, ebx
mov r8, rdi
mov rcx, rsi
call fcn.1802bdf70
mov r9, qword [rbp + 0xb0]
mov ecx, 0xad
mov r8, qword [rsp + 0x78]
mov eax, 0x3d
mov r10, qword [rbp + 0xa0]
mov byte [r8 + 0x1c], 0
mov dword [r9 + 0x38], r15d
lea r15d, [r14 - 1]
cmp byte [r10 + 0x42], 0
cmovne eax, ecx
movsxd rcx, dword [r9 + 0x40]
mov byte [r9 + 0x35], al
mov eax, dword [rsi + 0x90]
mov dword [r9 + 0x3c], eax
test r15d, r15d
js 0x18031e1d5
mov r13, rcx
lea r14, [r14*8 - 8]
mov r11d, 0x48
nop word [rax + rax]
mov rax, qword [r8 + 0x38]
mov rbx, qword [r14 + rax]
lea rax, [r13 - 1]
movzx edx, word [rbx + 0x14]
and dx, 1
cmove rax, r13
test dx, dx
mov r13, rax
lea eax, [rcx - 1]
cmove eax, ecx
mov dword [rbp - 0x80], eax
cmp r15d, 0x10
jge 0x18031c4ea
movzx eax, word [r8 + 0x1e]
movzx ecx, r15w
shr ax, cl
test al, 1
je 0x18031c4ea
test byte [rbx + 0x12], 4
mov edx, r12d
jne 0x18031c7ae
cmp dword [r9], 0
je 0x18031c485
mov rax, qword [rbx]
test byte [rax + 4], 1
je 0x18031c7ae
mov rax, qword [rbx + 0x38]
test qword [r9 + 0x58], rax
jne 0x18031c7ae
test edx, edx
je 0x18031c4b3
movzx eax, word [rbx + 0x12]
mov ecx, 0x400
test cx, ax
je 0x18031c4b3
mov ecx, 0x200
or ax, cx
mov word [rbx + 0x12], ax
jmp 0x18031c4b8
or word [rbx + 0x12], 4
movsxd rcx, dword [rbx + 0x18]
test ecx, ecx
js 0x18031c7ae
mov rax, qword [rbx + 8]
mov rbx, rcx
shl rbx, 6
add rbx, qword [rax + 0x20]
add byte [rbx + 0x16], 0xff
jne 0x18031c7ae
inc edx
test byte [rbx + 0x12], 4
je 0x18031c472
jmp 0x18031c7ae
test dx, dx
je 0x18031c7ae
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
movzx eax, byte [rcx]
cmp al, 0xad
jne 0x18031c505
movzx eax, byte [rcx + 2]
cmp al, 0xae
jne 0x18031c50f
mov rax, qword [rcx + 0x20]
jmp 0x18031c51b
cmp al, 0x88
jne 0x18031c524
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jne 0x18031c7ae
mov rax, qword [rbp - 0x50]
cmp byte [rax + 0x61], 0
jne 0x18031c5e1
mov rax, qword [r9 + 0x48]
lea rcx, [r13*4]
add rcx, r13
mov edx, dword [rax + rcx*4 + 4]
test edx, edx
jns 0x18031c551
mov edx, dword [rsi + 0x90]
dec edx
mov rax, qword [rsi]
cmp byte [rax + 0x61], 0
je 0x18031c563
lea rax, [0x1804df2b0]
jmp 0x18031c575
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rcx*8]
movsxd rcx, dword [rsi + 0x90]
mov r10d, dword [rax + 0xc]
mov r9d, dword [rax + 8]
mov r8d, dword [rax + 4]
movzx edx, byte [rax]
cmp dword [rsi + 0x94], ecx
jg 0x18031c5ab
movzx edx, dl
mov rcx, rsi
mov dword [rsp + 0x20], r10d
call fcn.1802bcd80
mov r11d, 0x48
jmp 0x18031c5e1
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8], dl
mov word [rax + rcx*8 + 2], r12w
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r10d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], 0
mov rax, qword [rbp + 0x90]
mov rcx, qword [rax]
cmp r11w, word [rcx + 0x17c]
jbe 0x18031c618
cmp dword [rcx + 0x178], 0
jne 0x18031c609
inc dword [rcx + 0x18c]
jmp 0x18031c696
cmp byte [rcx + 0x61], 0
jne 0x18031c7ae
jmp 0x18031c696
mov rdi, qword [rcx + 0x1b0]
test rdi, rdi
je 0x18031c636
mov rax, qword [rdi]
mov qword [rcx + 0x1b0], rax
inc dword [rcx + 0x188]
jmp 0x18031c6a1
mov rdi, qword [rcx + 0x1a8]
test rdi, rdi
je 0x18031c654
mov rax, qword [rdi]
mov qword [rcx + 0x1a8], rax
inc dword [rcx + 0x188]
jmp 0x18031c6a1
mov rdi, qword [rcx + 0x1a0]
test rdi, rdi
je 0x18031c672
mov rax, qword [rdi]
mov qword [rcx + 0x1a0], rax
inc dword [rcx + 0x188]
jmp 0x18031c6a1
mov rdi, qword [rcx + 0x198]
test rdi, rdi
je 0x18031c690
mov rax, qword [rdi]
mov qword [rcx + 0x198], rax
inc dword [rcx + 0x188]
jmp 0x18031c6a1
inc dword [rcx + 0x190]
mov rdx, r11
call fcn.180297d60
mov rdi, rax
test rdi, rdi
je 0x18031c7ae
xor eax, eax
mov rcx, rdi
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
mov eax, 0xffffffff
mov word [rdi + 0x32], ax
mov byte [rdi], 0x35
call fcn.1802d4540
mov rcx, qword [rbp + 0x90]
mov rax, qword [rcx]
mov r8d, dword [rax + 0x88]
cmp dword [rdi + 0x28], r8d
jle 0x18031c706
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
call fcn.18029b040
mov rax, qword [rbx]
mov edx, 0x49
mov rbx, qword [rbp - 0x50]
mov rcx, qword [rax + 0x10]
mov qword [rdi + 0x10], rcx
mov rcx, rbx
call fcn.180297dc0
mov rcx, rax
test rax, rax
je 0x18031c76a
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov qword [rcx + 0x38], rax
mov qword [rcx + 0x40], rax
mov eax, 0xffffffff
mov word [rcx + 0x32], ax
lea rax, [rcx + 0x48]
mov qword [rcx + 8], rax
mov byte [rcx], 0xad
mov byte [rax], 0
mov eax, 1
mov dword [rcx + 0x28], eax
mov qword [rdi + 0x18], rcx
test rcx, rcx
je 0x18031c79f
mov eax, dword [rbp + 0xa8]
xor r9d, r9d
add eax, 2
mov rdx, rdi
add eax, r15d
mov dword [rcx + 0x2c], eax
mov rcx, qword [rbp + 0xb0]
mov r8d, dword [rcx + 0x18]
mov rcx, qword [rbp + 0x90]
call fcn.1802dc1b0
mov rdx, rdi
mov qword [rdi + 0x10], r12
mov rcx, rbx
call fcn.1802d4fa0
mov ecx, dword [rbp - 0x80]
sub r14, 8
sub r15d, 1
mov r8, qword [rsp + 0x78]
mov r9, qword [rbp + 0xb0]
mov r11d, 0x48
jns 0x18031c420
jmp 0x18031e1ce
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x18031c87b
mov rax, qword [r11 + 0x38]
xor r9d, r9d
mov r8, r13
mov rcx, r15
mov rbx, qword [rax]
inc dword [r15 + 0x38]
mov rdx, rbx
mov edi, dword [r15 + 0x38]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r10d
call fcn.18031a920
mov edx, eax
cmp eax, edi
je 0x18031c837
test edi, edi
je 0x18031c837
movzx ecx, byte [r15 + 0x1f]
cmp cl, 8
jae 0x18031c837
movzx eax, cl
mov dword [r15 + rax*4 + 0xcc], edi
inc byte [r15 + 0x1f]
mov r9d, dword [r13 + 0x10]
mov rcx, rsi
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x20], edx
mov edx, 0x1f
call fcn.1802bcde0
mov r10, qword [rbp + 0xa0]
mov r9, r13
mov byte [r13 + 0x35], 0xad
mov r8, r12
mov rax, qword [rbx + 0x38]
test qword [r13 + 0x58], rax
jne 0x18031e1d8
or word [rbx + 0x12], 4
jmp 0x18031e1d8
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x18031cb48
mov dword [rsp + 0x68], r12d
mov edi, 0xad
mov r13d, edi
mov rbx, r12
mov rcx, r12
test dl, 0x20
je 0x18031c8b4
mov rax, qword [r11 + 0x38]
mov r8d, 8
mov rcx, qword [rax]
jmp 0x18031c8b7
mov r8, r12
test dl, 0x10
je 0x18031c8c4
mov rax, qword [r11 + 0x38]
mov rbx, qword [r8 + rax]
test r10d, r10d
mov r15, rcx
cmove r15, rbx
cmove rbx, rcx
test rbx, rbx
je 0x18031c9d4
mov rdi, qword [rbx]
mov dword [rbp + 0xa8], 0x18161719
mov rdx, qword [rdi + 0x18]
movzx eax, byte [rdx]
cmp al, r13b
jne 0x18031c8f8
movzx eax, byte [rdx + 2]
cmp al, 0xae
jne 0x18031c902
mov rax, qword [rdx + 0x20]
jmp 0x18031c90e
cmp al, 0x88
jne 0x18031c965
mov rax, qword [rdx + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jle 0x18031c965
mov rcx, qword [rbp + 0x90]
movzx eax, byte [rcx + 0x1f]
test al, al
jne 0x18031c92a
inc dword [rcx + 0x38]
mov ebx, dword [rcx + 0x38]
jmp 0x18031c939
dec al
movzx eax, al
mov byte [rcx + 0x1f], al
mov ebx, dword [rcx + rax*4 + 0xcc]
mov rdx, qword [rdi + 0x18]
mov r9d, 1
mov r8d, ebx
call fcn.18031b730
movzx eax, byte [rdi]
mov r14d, ebx
inc rax
and eax, 2
or rax, 1
movzx ecx, byte [rbp + rax + 0xa8]
jmp 0x18031c992
mov rcx, qword [rbp + 0x90]
lea r8, [rbp - 0x80]
call fcn.1802db750
mov rcx, qword [rbp + 0xb0]
mov rdx, rbx
mov r14d, eax
call fcn.18031a4f0
movzx eax, byte [rdi]
mov ebx, dword [rbp - 0x80]
movzx ecx, byte [rbp + rax + 0x72]
mov r8d, dword [rsp + 0x40]
movzx edx, cl
mov rcx, rsi
mov dword [rsp + 0x20], r14d
mov r14d, dword [rsp + 0x6c]
mov r9d, r14d
call fcn.1802bcde0
mov rcx, qword [rbp + 0x90]
mov edi, r13d
test ebx, ebx
je 0x18031c9f5
movzx eax, byte [rcx + 0x1f]
cmp al, 8
jae 0x18031c9f5
movzx eax, al
mov dword [rcx + rax*4 + 0xcc], ebx
inc byte [rcx + 0x1f]
jmp 0x18031c9f5
mov r8d, dword [rsp + 0x40]
mov edx, r10d
xor edx, 1
mov rcx, rsi
lea edx, [rdx*4 + 0x21]
call fcn.1802bcf30
mov rcx, qword [rbp + 0x90]
test r15, r15
je 0x18031caa7
mov rbx, qword [r15]
mov r9d, 1
inc dword [rcx + 0x38]
mov eax, dword [rcx + 0x38]
mov r8d, eax
mov dword [rsp + 0x68], eax
mov rdx, qword [rbx + 0x18]
call fcn.18031b730
mov rcx, qword [rbx + 0x18]
movzx edx, byte [rcx]
movzx eax, dl
cmp dl, r13b
jne 0x18031ca30
movzx eax, byte [rcx + 2]
cmp al, 0xae
jne 0x18031ca3a
mov rax, qword [rcx + 0x20]
jmp 0x18031ca46
cmp al, 0x88
jne 0x18031ca4b
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jg 0x18031ca65
movzx eax, byte [rbx]
sub al, 0x36
test al, 0xfd
jne 0x18031ca65
mov eax, dword [rsp + 0x58]
xor eax, 1
lea r13d, [rax*2 + 0x37]
jmp 0x18031ca72
mov rax, qword [rsp + 0x58]
lea r13d, [rax*2 + 0x36]
cmp dl, 0xad
jne 0x18031ca7b
movzx edx, byte [rcx + 2]
cmp dl, 0xae
jne 0x18031ca86
mov rax, qword [rcx + 0x20]
jmp 0x18031ca93
cmp dl, 0x88
jne 0x18031ca98
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jg 0x18031caa7
mov rcx, qword [rbp + 0xb0]
mov rdx, r15
call fcn.18031a4f0
mov r9, qword [rbp + 0xb0]
mov ecx, dword [rsi + 0x90]
cmp dword [rsp + 0x58], r12d
mov edx, dword [rsp + 0x40]
sete al
mov dword [r9 + 0x38], edx
add al, 4
mov dword [r9 + 0x3c], ecx
mov byte [r9 + 0x35], al
cmp r13d, edi
je 0x18031e1ce
mov rax, qword [rbp + 0x90]
mov r8d, edx
mov edx, 0x7f
mov rcx, rsi
inc dword [rax + 0x38]
mov ebx, dword [rax + 0x38]
mov r9d, ebx
call fcn.1802bcf30
mov r8d, dword [rsp + 0x68]
mov r9d, r14d
mov edx, r13d
mov dword [rsp + 0x20], ebx
mov rcx, rsi
call fcn.1802bcde0
movsxd rax, dword [rsi + 0x90]
mov r8, r12
mov r9, qword [rbp + 0xb0]
mov r10, qword [rbp + 0xa0]
test eax, eax
jle 0x18031e1d8
lea rcx, [rax + rax*2]
mov edx, 0x53
mov rax, qword [rsi + 0x88]
mov word [rax + rcx*8 - 0x16], dx
jmp 0x18031e1d8
mov eax, 0x200
test eax, edx
je 0x18031d5a8
movzx r15d, word [r11 + 0x18]
xor r14b, r14b
movzx ebx, word [r11 + 0x1a]
mov rdi, r12
mov rax, qword [rsp + 0x78]
mov r8d, r15d
movzx r11d, word [r11 + 0x1c]
mov r10, r12
mov word [rsp + 0x70], bx
mov r9d, r12d
mov word [rsp + 0x60], r11w
mov r13d, r12d
mov rax, qword [rax + 0x20]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp + 0xb0]
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x68], r12
mov eax, dword [rax + 8]
mov dword [rsp + 0x48], eax
mov byte [rbp + 0xa8], dil
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x64], r8d
test dl, 0x20
je 0x18031cbd6
mov rax, qword [rsp + 0x78]
inc r8d
movzx r9d, bx
mov rax, qword [rax + 0x38]
mov rdi, qword [rax + r15*8]
mov qword [rbp - 0x58], rdi
test dl, 0x10
je 0x18031ccb9
mov rax, qword [rsp + 0x78]
movzx ebx, r11w
cmp r9d, ebx
mov rax, qword [rax + 0x38]
cmova ebx, r9d
mov r10, qword [rax + r8*8]
mov eax, 0x100
mov qword [rbp - 0x80], r10
test word [r10 + 0x12], ax
je 0x18031cc74
mov rcx, qword [rbp + 0x90]
mov edx, 0x45
mov rax, qword [rbp + 0xb0]
mov r9d, dword [rcx + 0x38]
lea r8d, [rdx - 0x44]
inc r9d
mov dword [rcx + 0x38], r9d
mov rcx, rsi
mov dword [rax + 0x2c], r9d
call fcn.1802bcf30
mov eax, dword [rsi + 0x90]
mov ecx, r12d
mov r8, qword [rbp + 0xb0]
mov r10, qword [rbp - 0x80]
movzx r11d, word [rsp + 0x60]
movzx edx, r15w
shl dword [r8 + 0x2c], 1
mov dword [r8 + 0x30], eax
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x38]
cmp byte [rdx + rax], 1
sete cl
xor ecx, dword [rsp + 0x58]
or dword [r8 + 0x2c], ecx
jmp 0x18031cc78
movzx edx, r15w
mov r9d, ebx
test rdi, rdi
jne 0x18031ccb4
mov rcx, qword [rbp - 0x78]
mov rax, qword [rcx + 8]
movsx r8, word [rax + rdx*2]
test r8d, r8d
js 0x18031cca8
mov rax, qword [rcx + 0x18]
mov rdx, r8
shl rdx, 5
mov rcx, qword [rax + 8]
cmp byte [rdx + rcx + 0x18], r12b
je 0x18031ccae
cmp r8d, 0xfffffffe
jne 0x18031ccb4
mov r14b, 1
mov r9d, ebx
movzx ebx, word [rsp + 0x70]
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x28]
test al, 0x30
jne 0x18031ccfc
bt eax, 0x13
jae 0x18031ccfc
mov rax, qword [rbp + 0x90]
mov r9d, 1
mov rcx, qword [rbp + 0xb0]
movzx r14d, r9b
inc dword [rax + 0x38]
mov r13d, dword [rax + 0x38]
mov dword [rcx + 0x24], r13d
dec dword [rax + 0x44]
mov eax, dword [rax + 0x44]
mov dword [rcx + 0x28], eax
mov dword [rsp + 0x44], r13d
mov rax, qword [rbp - 0x78]
movzx r8d, word [rax + 0x5e]
cmp r15w, r8w
jae 0x18031cd28
mov rax, qword [rax + 0x38]
mov edx, r12d
movzx ecx, r15w
cmp byte [rcx + rax], r12b
mov rcx, qword [rsp + 0x58]
sete dl
cmp ecx, edx
je 0x18031cd37
jmp 0x18031cd2d
mov rcx, qword [rsp + 0x58]
test ecx, ecx
je 0x18031cd5f
cmp r8w, r15w
jne 0x18031cd5f
movzx eax, bl
mov qword [rbp - 0x80], rdi
movzx ebx, ax
mov byte [rbp + 0xa8], r14b
mov rdi, r10
mov word [rsp + 0x60], ax
xor r14b, r14b
mov qword [rbp - 0x58], r10
mov word [rsp + 0x70], r11w
jmp 0x18031cd64
movzx ebx, word [rsp + 0x60]
mov rdx, qword [rbp + 0xb0]
lea rax, [rbp - 0x60]
mov r8d, ecx
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0x90]
call fcn.18031b030
mov edx, eax
mov dword [rsp + 0x4c], eax
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x18031cdaf
test bx, bx
je 0x18031cdaf
mov rcx, qword [rbp - 0x50]
movzx edx, r15w
add rdx, rax
call fcn.180298020
mov edx, dword [rsp + 0x4c]
mov qword [rbp - 0x68], rax
mov rax, qword [rbp + 0xb0]
test r13d, r13d
je 0x18031cdc0
mov eax, dword [rax + 0x28]
jmp 0x18031cdc3
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x50], eax
test rdi, rdi
je 0x18031cddc
test byte [rdi + 0x14], 0x28
jne 0x18031cddc
mov r13d, r12d
mov ecx, 1
jmp 0x18031cde4
mov ecx, 1
mov r13d, ecx
mov rax, qword [rbp - 0x80]
mov dword [rsp + 0x6c], r13d
test rax, rax
je 0x18031cdfd
test byte [rax + 0x14], 0x28
mov dword [rsp + 0x74], r12d
je 0x18031ce01
mov dword [rsp + 0x74], ecx
test rdi, rdi
jne 0x18031ce42
test r15w, r15w
jne 0x18031ce42
mov ecx, dword [rsp + 0x64]
mov dword [rsp + 0x68], r12d
mov ebx, ecx
test r14b, r14b
je 0x18031d061
lea r9d, [rdx + rcx]
xor r8d, r8d
mov rcx, rsi
mov r13d, r12d
lea edx, [r8 + 0x48]
call fcn.1802bcf30
inc ebx
mov edi, 1
jmp 0x18031cf13
mov dword [rsp + 0x68], ecx
movzx ecx, r15w
mov ebx, ecx
test rdi, rdi
je 0x18031ce15
mov rax, qword [rdi]
lea r13d, [rdx + rcx]
movzx r14d, word [rsp + 0x70]
mov r8d, r13d
mov rcx, qword [rbp + 0x90]
mov r9d, r14d
mov rdi, qword [rax + 0x18]
mov rdx, rdi
call fcn.18031b730
mov r8, qword [rbp - 0x58]
mov rcx, rsi
mov rdx, qword [rbp + 0xb0]
call fcn.18031b510
mov rcx, rdi
call fcn.1802d66e0
test eax, eax
je 0x18031ceab
mov r9d, dword [rsp + 0x50]
mov r8d, r13d
mov edx, 0x32
mov rcx, rsi
call fcn.1802bcf30
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x18031cec6
movzx r8d, r15w
mov edx, r14d
add r8, rax
mov rcx, rdi
call fcn.18031a650
movzx eax, byte [rdi]
add ebx, r14d
cmp al, 0xad
jne 0x18031ced4
movzx eax, byte [rdi + 2]
cmp al, 0xae
jne 0x18031cede
mov rax, qword [rdi + 0x20]
jmp 0x18031ceea
cmp al, 0x88
jne 0x18031cef7
mov rax, qword [rdi + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jle 0x18031cef7
mov r13d, 1
jmp 0x18031cf0c
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp + 0xb0]
call fcn.18031a4f0
mov r13d, dword [rsp + 0x6c]
xor r14b, r14b
mov edi, dword [rsp + 0x68]
mov eax, dword [rsp + 0x4c]
mov r8d, ebx
mov r9, qword [rbp - 0x60]
mov edx, eax
mov rcx, qword [rbp + 0x90]
movzx r14d, r14b
sub r8d, r14d
mov dword [rsp + 0x6c], r14d
call fcn.18031a570
mov rcx, qword [rsp + 0x78]
lea r15, [0x180000000]
movzx eax, word [rcx + 0x2e]
test ax, ax
je 0x18031cf58
movzx eax, ax
cmp ebx, eax
je 0x18031d08b
test dword [rcx + 0x28], 0x40000
je 0x18031cf73
mov r8d, dword [rsp + 0x48]
mov edx, 0x76
mov rcx, rsi
call fcn.1802bcec0
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x18031cf8f
mov edx, 0x45
mov r9d, eax
mov rcx, rsi
lea r8d, [rdx - 0x44]
call fcn.1802bcf30
mov rcx, qword [rsp + 0x58]
lea eax, [rdi*2]
mov edi, dword [rsp + 0x4c]
add eax, r13d
mov r9d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x20], edi
lea ecx, [rcx + rax*2]
movzx edx, byte [rcx + r15 + 0x3b5ec8]
mov rcx, rsi
call fcn.1802bcde0
movsxd rcx, eax
mov rax, qword [rsi]
cmp byte [rax + 0x61], r12b
jne 0x18031cfe4
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], ebx
cmp dword [rsp + 0x44], r12d
je 0x18031d08f
mov r9d, dword [rsi + 0x90]
xor r8d, r8d
add r9d, 2
mov rcx, rsi
lea edx, [r8 + 0xb]
call fcn.1802bcf30
mov r9d, dword [rsp + 0x50]
mov eax, 2
mov r8d, dword [rsp + 0x48]
mov ecx, 6
cmp ebx, 1
mov dword [rsp + 0x20], edi
cmova eax, ecx
mov rcx, rsi
add eax, dword [rsp + 0x58]
movzx edx, byte [rax + r15 + 0x3b5ec8]
call fcn.1802bcde0
movsxd rcx, eax
mov rax, qword [rsi]
cmp byte [rax + 0x61], r12b
jne 0x18031d08f
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
sub ebx, r13d
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], ebx
jmp 0x18031d08f
cmp dword [rsp + 0x44], r12d
je 0x18031cf0f
lea r9d, [rdx + rcx]
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x48]
call fcn.1802bcf30
inc ebx
mov edi, 1
jmp 0x18031cf13
mov edi, dword [rsp + 0x4c]
mov rax, qword [rbp - 0x80]
mov r13d, dword [rsp + 0x64]
test rax, rax
je 0x18031d21c
mov rax, qword [rax]
mov r14d, dword [rsp + 0x4c]
movzx edi, word [rsp + 0x60]
add r14d, r13d
mov rcx, qword [rbp + 0x90]
mov r9d, edi
mov rbx, qword [rax + 0x18]
mov r8d, r14d
mov rdx, rbx
call fcn.18031b730
mov r8, qword [rbp - 0x80]
mov rcx, rsi
mov rdx, qword [rbp + 0xb0]
call fcn.18031b510
mov rcx, rbx
call fcn.1802d66e0
test eax, eax
je 0x18031d0fe
mov r9d, dword [rsp + 0x50]
mov r8d, r14d
mov edx, 0x32
mov rcx, rsi
call fcn.1802bcf30
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x18031d12a
mov r8, rax
mov edx, edi
mov rcx, rbx
call fcn.18031a650
mov r9, qword [rbp - 0x68]
mov r8d, edi
mov rcx, qword [rbp + 0x90]
mov edx, r14d
call fcn.18031a570
movzx eax, byte [rbx]
add r13d, edi
cmp al, 0xad
jne 0x18031d138
movzx eax, byte [rbx + 2]
cmp al, 0xae
jne 0x18031d142
mov rax, qword [rbx + 0x20]
jmp 0x18031d14e
cmp al, 0x88
jne 0x18031d15f
mov rax, qword [rbx + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 1
jle 0x18031d15f
mov r14d, dword [rsp + 0x6c]
mov edi, 1
jmp 0x18031d178
mov rdx, qword [rbp - 0x80]
mov rcx, qword [rbp + 0xb0]
call fcn.18031a4f0
mov r14d, dword [rsp + 0x6c]
mov edi, dword [rsp + 0x74]
mov ebx, dword [rsp + 0x44]
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x50]
call fcn.180297a70
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x50]
call fcn.180297a70
mov rcx, qword [rbp + 0xb0]
mov eax, dword [rsi + 0x90]
mov dword [rcx + 0x3c], eax
test r13d, r13d
je 0x18031d25a
test ebx, ebx
je 0x18031d1ce
mov r9d, dword [rsi + 0x90]
mov r8d, ebx
add r9d, 3
mov edx, 0x14
mov rcx, rsi
call fcn.1802bcf30
mov rax, qword [rsp + 0x58]
mov rcx, rsi
mov r9d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x48]
lea eax, [rdi + rax*2]
mov edi, dword [rsp + 0x4c]
movzx edx, byte [rax + r15 + 0x3b5ae4]
mov dword [rsp + 0x20], edi
call fcn.1802bcde0
movsxd rcx, eax
mov rax, qword [rsi]
cmp byte [rax + 0x61], r12b
jne 0x18031d25e
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r13d
jmp 0x18031d25e
cmp byte [rbp + 0xa8], r12b
je 0x18031d174
mov ebx, dword [rsp + 0x44]
test ebx, ebx
jne 0x18031d24e
lea r9d, [rdi + r13]
xor r8d, r8d
lea edx, [rbx + 0x48]
mov rcx, rsi
call fcn.1802bcf30
inc r13d
mov edi, r12d
jmp 0x18031d17c
mov edi, dword [rsp + 0x74]
inc r13d
jmp 0x18031d17c
mov edi, dword [rsp + 0x4c]
test ebx, ebx
je 0x18031d2d1
mov r9d, dword [rsi + 0x90]
mov r8d, ebx
add r9d, 2
mov edx, 0x12
mov rcx, rsi
call fcn.1802bcf30
mov rcx, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x50]
mov dword [rsp + 0x20], edi
mov edi, dword [rsp + 0x48]
mov r8d, edi
lea eax, [r14 + rcx*2]
mov rcx, rsi
movzx edx, byte [rax + r15 + 0x3b5ae4]
call fcn.1802bcde0
movsxd rcx, eax
mov rax, qword [rsi]
cmp byte [rax + 0x61], r12b
jne 0x18031d2d5
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
lea r8, [rax + rcx*8]
lea eax, [r14 + r13]
mov dword [r8 + 0x10], eax
jmp 0x18031d2d5
mov edi, dword [rsp + 0x48]
mov r14, qword [rsp + 0x78]
mov r15d, 1
mov eax, dword [r14 + 0x28]
bt eax, 0x12
jae 0x18031d300
mov r9d, r15d
lea edx, [r15 + 0x75]
mov r8d, edi
mov rcx, rsi
call fcn.1802bcf30
mov eax, dword [r14 + 0x28]
test al, 0x40
je 0x18031d31e
mov rbx, qword [rbp + 0xa0]
test byte [rbx + 0x3c], 0x20
jne 0x18031d31e
mov r13, qword [rbp - 0x78]
mov edi, dword [rsp + 0x40]
jmp 0x18031d510
mov r13, qword [rbp - 0x78]
mov r15d, r12d
mov rbx, qword [r13 + 0x18]
test byte [rbx + 0x40], 0x80
jne 0x18031d3b8
mov rbx, qword [rbp + 0xa0]
mov ecx, 0x400
movzx eax, word [rbx + 0x3c]
test cx, ax
jne 0x18031d379
mov ecx, 0x1000
test cx, ax
je 0x18031d35f
cmp byte [rbx + 0x42], 1
je 0x18031d379
cmp word [r14 + 0x2c], r12w
je 0x18031d379
mov r9d, edi
mov rdx, r13
mov edi, dword [rsp + 0x40]
mov rcx, rbx
mov r8d, edi
call fcn.18031b570
jmp 0x18031d510
mov rax, qword [rbp + 0x90]
mov r8d, edi
mov edx, 0x86
mov rcx, rsi
inc dword [rax + 0x38]
mov ebx, dword [rax + 0x38]
mov r9d, ebx
call fcn.1802bcf30
mov edi, dword [rsp + 0x40]
xor r9d, r9d
mov r8d, edi
mov dword [rsp + 0x20], ebx
mov rcx, rsi
lea edx, [r9 + 0x20]
call fcn.1802bcde0
jmp 0x18031d509
mov r10d, dword [rsp + 0x40]
cmp r10d, edi
je 0x18031d506
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x18031d3e2
nop
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x18031d3e2
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18031d3d0
movzx edx, word [rbx + 0x5e]
mov rcx, qword [rbp + 0x90]
call fcn.1802dd350
mov r14d, eax
mov edi, r12d
movzx eax, word [rbx + 0x5e]
cmp r12w, ax
jae 0x18031d479
mov r15d, dword [rsp + 0x48]
mov r11d, 0xffffffff
nop dword [rax]
movzx r8d, word [r13 + 0x60]
mov edx, r12d
test r8d, r8d
je 0x18031d441
mov rax, qword [rbx + 8]
mov r9, qword [r13 + 8]
movsxd rcx, edi
movzx r10d, word [rax + rcx*2]
nop dword [rax]
movsxd rax, edx
cmp r10w, word [r9 + rax*2]
je 0x18031d445
inc edx
cmp edx, r8d
jl 0x18031d430
movzx edx, r11w
lea eax, [rdi + r14]
movsx r9d, dx
mov edx, 0x59
mov dword [rsp + 0x20], eax
mov r8d, r15d
mov rcx, rsi
call fcn.1802bcde0
movzx eax, word [rbx + 0x5e]
inc edi
mov r11d, 0xffffffff
cmp edi, eax
jl 0x18031d410
mov r10d, dword [rsp + 0x40]
mov r15d, r12d
movsxd rdx, dword [rsi + 0x90]
movzx ebx, ax
cmp dword [rsi + 0x94], edx
jg 0x18031d4a8
mov r9d, dword [rbp - 0x70]
mov r8d, r10d
mov edx, 0x1d
mov dword [rsp + 0x20], r14d
mov rcx, rsi
call fcn.1802bcd80
mov edx, eax
jmp 0x18031d4db
mov r8d, dword [rbp - 0x70]
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x1d
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], r12
mov rax, qword [rsi]
mov r14, qword [rsp + 0x78]
mov edi, dword [rsp + 0x40]
cmp byte [rax + 0x61], r12b
jne 0x18031d509
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], ebx
jmp 0x18031d509
mov edi, r10d
mov rbx, qword [rbp + 0xa0]
mov rax, qword [rbp + 0xb0]
cmp dword [rax], r12d
jne 0x18031d548
test byte [rbx + 0x3c], 0x20
jne 0x18031d534
mov r8d, dword [rsp + 0x48]
mov r9, rbx
mov edx, edi
mov rcx, r13
call fcn.18031b980
mov rcx, qword [r13 + 0x48]
test rcx, rcx
je 0x18031d548
lea r8, [rbx + 0x68]
mov edx, edi
call fcn.18031bc10
mov r9, qword [rbp + 0xb0]
mov eax, 0x1000
test dword [r14 + 0x28], eax
je 0x18031d561
mov byte [r9 + 0x35], 0xad
jmp 0x18031d56f
cmp dword [rsp + 0x58], r12d
sete al
add al, 4
mov byte [r9 + 0x35], al
mov eax, dword [rsp + 0x48]
mov dword [r9 + 0x38], eax
movzx eax, byte [r14 + 0x2a]
and al, 1
mov byte [r9 + 0x36], al
test byte [r14 + 0x28], 0xf
jne 0x18031d58e
mov byte [r9 + 0x37], 1
mov r10, qword [rbp + 0xa0]
test r15d, r15d
mov r8, r12
cmove r8, r13
mov qword [rbp - 0x28], r8
jmp 0x18031e1d8
bt edx, 0xd
jae 0x18031e180
dec dword [r15 + 0x44]
inc dword [r15 + 0x38]
mov eax, dword [r15 + 0x34]
mov edx, dword [r15 + 0x38]
mov dword [rsp + 0x6c], eax
inc eax
mov dword [r15 + 0x34], eax
mov eax, dword [r15 + 0x44]
mov dword [rsp + 0x68], eax
mov rax, qword [rbp - 0x48]
mov qword [rbp - 0x40], r12
mov dword [rsp + 0x60], edx
mov dword [rsp + 0x44], r12d
mov rcx, qword [rax + 0x20]
mov rax, qword [r11 + 0x38]
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x70], r12d
mov qword [rbp - 0x58], r12
mov r14, qword [rax]
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x20], r14
mov rax, qword [r14 + 0x28]
mov qword [rbp - 0x38], rax
mov byte [r13 + 0x35], 0x41
mov dword [r13 + 0x38], edx
movzx eax, byte [rbx + 0x40]
cmp al, 1
jbe 0x18031d777
movzx ebx, al
sub ebx, edi
dec ebx
movsxd rax, ebx
imul rcx, rax, 0x70
mov rax, qword [rbp - 0x50]
add rcx, 0x78
test rax, rax
je 0x18031d64b
mov rdx, rcx
mov rcx, rax
call fcn.180297dc0
jmp 0x18031d650
call fcn.1802976f0
mov qword [rsp + 0x58], rax
mov r13, rax
test rax, rax
jne 0x18031d669
mov rax, qword [rbp + 0xb8]
jmp 0x18031e5d5
lea eax, [rbx + 1]
movzx ecx, al
mov rax, qword [rbp - 0x48]
mov dword [r13 + 4], ecx
mov dword [r13], ecx
movups xmm0, xmmword [rax]
movups xmmword [r13 + 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r13 + 0x18], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [r13 + 0x28], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [r13 + 0x38], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [r13 + 0x48], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [r13 + 0x58], xmm1
movups xmm0, xmmword [rax + 0x60]
mov rax, qword [rbp + 0xa0]
movups xmmword [r13 + 0x68], xmm0
mov r10, qword [rax + 8]
cmp ebx, 1
jl 0x18031d73c
mov r8, qword [rbp + 0xb0]
lea rdx, [r13 + 0x78]
add r8, 0x94
mov r9d, ebx
nop
movzx eax, byte [r8]
lea rdx, [rdx + 0x70]
imul rcx, rax, 0x70
lea r8, [r8 + 0x60]
movups xmm0, xmmword [rcx + r10 + 8]
movups xmmword [rdx - 0x70], xmm0
movups xmm1, xmmword [rcx + r10 + 0x18]
movups xmmword [rdx - 0x60], xmm1
movups xmm0, xmmword [rcx + r10 + 0x28]
movups xmmword [rdx - 0x50], xmm0
movups xmm1, xmmword [rcx + r10 + 0x38]
movups xmmword [rdx - 0x40], xmm1
movups xmm0, xmmword [rcx + r10 + 0x48]
movups xmmword [rdx - 0x30], xmm0
movups xmm1, xmmword [rcx + r10 + 0x58]
movups xmmword [rdx - 0x20], xmm1
movups xmm0, xmmword [rcx + r10 + 0x68]
movups xmmword [rdx - 0x10], xmm0
sub r9, 1
jne 0x18031d6e0
mov rbx, qword [rbp + 0xa0]
mov rcx, qword [rbp - 0x60]
test byte [rbx + 0x3c], 0x10
jne 0x18031d7dd
test byte [rcx + 0x40], 0x80
jne 0x18031d782
inc dword [r15 + 0x38]
xor r8d, r8d
mov eax, dword [r15 + 0x38]
mov rcx, rsi
mov r9d, eax
mov dword [rsp + 0x44], eax
lea edx, [r8 + 0x48]
call fcn.1802bcf30
jmp 0x18031d7d1
mov r13, qword [rbx + 8]
mov qword [rsp + 0x58], r13
jmp 0x18031d747
mov rbx, qword [rcx + 0x10]
test rbx, rbx
je 0x18031d7a2
nop dword [rax + rax]
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x18031d7a2
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18031d790
mov edi, dword [r15 + 0x34]
mov edx, 0x64
mov r8d, edi
mov dword [rsp + 0x44], edi
mov rcx, rsi
lea eax, [rdi + 1]
mov dword [r15 + 0x34], eax
movzx r9d, word [rbx + 0x5e]
call fcn.1802bcf30
mov rdx, rbx
mov rcx, r15
call fcn.1802be100
inc dword [r15 + 0x38]
mov eax, dword [r15 + 0x38]
mov dword [rsp + 0x50], eax
movsxd rdx, dword [rsi + 0x90]
mov dword [rbp - 0x80], edx
cmp dword [rsi + 0x94], edx
jg 0x18031d80d
mov r9d, dword [rsp + 0x60]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], r12d
lea edx, [r8 + 0x45]
call fcn.1802bcd80
mov dword [rbp - 0x80], eax
jmp 0x18031d83b
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov edx, dword [rsp + 0x60]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rcx, qword [rbp - 0x30]
mov eax, dword [rcx + 0x14]
cmp eax, 1
jle 0x18031d8ff
mov ebx, r12d
test eax, eax
jle 0x18031d8ff
mov rsi, qword [rbp - 0x50]
mov rdi, r12
mov edx, 0x1fff
mov r13, r12
nop word [rax + rax]
mov rcx, qword [rcx + 0x20]
movsxd rax, ebx
shl rax, 6
add rax, rcx
cmp rax, r14
je 0x18031d8c3
test byte [rdi + rcx + 0x12], 6
jne 0x18031d8c3
test word [rdi + rcx + 0x14], dx
je 0x18031d8c3
mov rdx, qword [rdi + rcx]
test rdx, rdx
je 0x18031d8aa
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.1802d5200
jmp 0x18031d8ad
mov rax, r12
mov r8, rax
mov rdx, r13
mov rcx, r15
call fcn.1802d4ab0
mov r13, rax
mov edx, 0x1fff
mov rcx, qword [rbp - 0x30]
inc ebx
add rdi, 0x40
cmp ebx, dword [rcx + 0x14]
jl 0x18031d870
mov rsi, qword [rbp + 0x98]
test r13, r13
mov qword [rbp - 0x58], r13
mov r13, qword [rsp + 0x58]
je 0x18031d8ff
mov r9, qword [rbp - 0x58]
xor r8d, r8d
mov edx, 0x1002c
mov rcx, r15
call fcn.1802d4950
mov qword [rbp - 0x58], rax
mov rax, qword [rbp + 0xa0]
lea r8, str.MULTI_INDEX_OR
mov edi, 0x400
mov edx, 1
mov rcx, r15
movzx eax, word [rax + 0x3c]
and ax, di
or ax, 0x20
mov word [rbp + 0xa8], ax
call fcn.1802bd430
mov rax, qword [rbp - 0x38]
mov r15d, r12d
mov dword [rsp + 0x48], r12d
cmp dword [rax + 0x14], r12d
jle 0x18031df1b
mov ecx, dword [rsp + 0x40]
mov r14, r12
mov qword [rbp - 0x78], r12
mov rax, qword [rax + 0x20]
cmp dword [r14 + rax + 0x1c], ecx
je 0x18031d969
test word [r14 + rax + 0x14], di
je 0x18031def9
mov rbx, qword [r14 + rax]
mov edi, r12d
mov rax, qword [rbp - 0x58]
mov dword [rsp + 0x4c], r12d
test rax, rax
je 0x18031d985
mov qword [rax + 0x10], rbx
mov rbx, rax
mov rcx, qword [rbp + 0x90]
lea r9d, [r15 + 1]
lea r8, str.INDEX__d
mov edx, 1
call fcn.1802bd430
mov eax, dword [rsp + 0x6c]
xor r9d, r9d
mov rcx, qword [rbp + 0x90]
mov r8, rbx
mov dword [rsp + 0x30], eax
mov rdx, r13
movzx eax, word [rbp + 0xa8]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r12
call fcn.180326980
mov qword [rbp - 0x68], rax
mov rbx, rax
test rax, rax
je 0x18031def0
mov rcx, qword [rbp + 0x90]
lea r8, [rax + 0x398]
xor r9d, r9d
mov rdx, r13
call fcn.180319fd0
mov rax, qword [rbp + 0xa0]
test byte [rax + 0x3c], 0x10
jne 0x18031dd9e
mov rax, qword [rbp - 0x38]
mov edx, r15d
mov ecx, dword [rax + 0x14]
mov eax, 0xffffffff
dec ecx
cmp r15d, ecx
cmove edx, eax
mov rax, qword [rbp - 0x60]
mov dword [rsp + 0x64], edx
test byte [rax + 0x40], 0x80
jne 0x18031dada
mov r9d, dword [rsp + 0x50]
mov edx, 0x7f
mov r8d, dword [rsp + 0x40]
mov rcx, rsi
call fcn.1802bcf30
movsxd rdi, dword [rsi + 0x90]
cmp dword [rsi + 0x94], edi
jg 0x18031da78
mov eax, dword [rsp + 0x50]
xor r9d, r9d
mov r8d, dword [rsp + 0x44]
mov rcx, rsi
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0x2d]
call fcn.1802bcd80
mov edi, eax
jmp 0x18031daad
mov edx, dword [rsp + 0x44]
lea rcx, [rdi + rdi*2]
lea eax, [rdi + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x50]
mov dword [rax + rcx*8 + 0xc], edx
mov dword [rax + rcx*8], 0x2d
mov dword [rax + rcx*8 + 8], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rax, qword [rsi]
cmp byte [rax + 0x61], 0
jne 0x18031dd9e
mov edx, dword [rsp + 0x64]
movsxd rax, edi
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edx
jmp 0x18031dd9e
mov rcx, rax
call fcn.1802e5c20
mov r8, qword [rbp + 0x90]
mov r15, rax
movzx edi, word [rax + 0x5e]
cmp edi, 1
jne 0x18031db1b
movzx ecx, byte [r8 + 0x1f]
test cl, cl
jne 0x18031db08
inc dword [r8 + 0x38]
mov r13d, dword [r8 + 0x38]
jmp 0x18031db4a
dec cl
movzx eax, cl
mov byte [r8 + 0x1f], al
mov r13d, dword [r8 + rax*4 + 0xcc]
jmp 0x18031db4a
mov ecx, dword [r8 + 0x28]
mov r13d, dword [r8 + 0x2c]
mov dword [rsp + 0x74], r13d
cmp edi, ecx
jg 0x18031db3c
lea eax, [rdi + r13]
sub ecx, edi
mov dword [r8 + 0x2c], eax
mov dword [r8 + 0x28], ecx
jmp 0x18031db4f
mov eax, dword [r8 + 0x38]
lea r13d, [rax + 1]
add eax, edi
mov dword [r8 + 0x38], eax
mov dword [rsp + 0x74], r13d
mov rbx, r12
mov r14, rdi
test edi, edi
je 0x18031dba4
mov r12, qword [rbp - 0x60]
mov edi, r13d
mov r13d, dword [rsp + 0x40]
nop word [rax + rax]
mov rax, qword [r15 + 8]
mov r8d, r13d
mov rdx, r12
mov dword [rsp + 0x20], edi
mov rcx, rsi
movsx r9d, word [rax + rbx*2]
call fcn.1802d9d00
inc edi
inc rbx
cmp rbx, r14
jl 0x18031db70
mov r13d, dword [rsp + 0x74]
xor r12d, r12d
mov edx, dword [rsp + 0x64]
mov edi, r14d
test edx, edx
je 0x18031dc3e
movsxd r8, dword [rsi + 0x90]
mov dword [rsp + 0x4c], r8d
cmp dword [rsi + 0x94], r8d
jg 0x18031dbe7
mov r8d, dword [rsp + 0x44]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], r13d
lea edx, [r9 + 0x1e]
call fcn.1802bcd80
mov edx, dword [rsp + 0x64]
mov r8d, eax
mov dword [rsp + 0x4c], eax
jmp 0x18031dc1c
mov r9d, dword [rsp + 0x44]
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x1e
mov dword [rax + rcx*8 + 4], r9d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r12
mov rax, qword [rsi]
cmp byte [rax + 0x61], 0
jne 0x18031dc3c
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edi
test edx, edx
js 0x18031dd48
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18031dc75
mov eax, dword [rsp + 0x50]
mov r9d, edi
mov r8d, r13d
mov dword [rsp + 0x20], eax
mov edx, 0x5b
mov rcx, rsi
call fcn.1802bcd80
mov r9d, dword [rsp + 0x50]
jmp 0x18031dca8
mov r9d, dword [rsp + 0x50]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x5b
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], r12
movsxd rdx, dword [rsi + 0x90]
mov r8d, dword [rsp + 0x44]
cmp dword [rsi + 0x94], edx
jg 0x18031dcd2
mov edx, 0x83
mov dword [rsp + 0x20], r13d
mov rcx, rsi
call fcn.1802bcd80
mov edx, eax
jmp 0x18031dd01
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x83
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r12
mov rax, qword [rsi]
cmp byte [rax + 0x61], 0
jne 0x18031dd21
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edi
cmp dword [rsp + 0x64], 0
je 0x18031dd48
movsxd rax, dword [rsi + 0x90]
test eax, eax
jle 0x18031dd48
lea rcx, [rax + rax*2]
mov edx, 0x10
mov rax, qword [rsi + 0x88]
mov word [rax + rcx*8 - 0x16], dx
mov rbx, qword [rbp - 0x68]
mov r15d, dword [rsp + 0x48]
mov r14, qword [rbp - 0x78]
cmp edi, 1
jne 0x18031dd82
test r13d, r13d
je 0x18031dd95
mov rdx, qword [rbp + 0x90]
mov edi, dword [rsp + 0x4c]
movzx eax, byte [rdx + 0x1f]
cmp al, 8
jae 0x18031dd99
movzx eax, al
mov dword [rdx + rax*4 + 0xcc], r13d
inc byte [rdx + 0x1f]
jmp 0x18031dd99
mov rdx, qword [rbp + 0x90]
cmp edi, dword [rdx + 0x28]
jle 0x18031dd95
mov dword [rdx + 0x28], edi
mov dword [rdx + 0x2c], r13d
mov edi, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x58]
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18031ddcb
mov r9d, dword [rsp + 0x68]
mov edx, 0xc
mov r8d, dword [rsp + 0x60]
mov rcx, rsi
mov dword [rsp + 0x20], r12d
call fcn.1802bcd80
jmp 0x18031de00
mov edx, dword [rsp + 0x60]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x68]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], 0xc
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
test edi, edi
je 0x18031de38
mov rax, qword [rsi]
mov edx, dword [rsi + 0x90]
cmp byte [rax + 0x61], 0
je 0x18031de1c
lea rax, [0x1804df2b0]
jmp 0x18031de35
lea eax, [rdx - 1]
test edi, edi
cmovns eax, edi
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test byte [rbx + 0x44], 2
mov ecx, 1
mov eax, dword [rsp + 0x70]
mov rdx, qword [rbx + 0x3e8]
cmovne eax, ecx
mov dword [rsp + 0x70], eax
mov eax, 0x200
test dword [rdx + 0x28], eax
je 0x18031de8f
test r15d, r15d
je 0x18031de6c
mov rax, qword [rbp - 0x40]
cmp qword [rdx + 0x20], rax
jne 0x18031de8f
mov rax, qword [rbp - 0x60]
test byte [rax + 0x40], 0x80
je 0x18031de85
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0x64]
and cl, 3
cmp cl, 2
je 0x18031de8f
mov rdi, qword [rdx + 0x20]
mov qword [rbp - 0x40], rdi
jmp 0x18031de93
mov qword [rbp - 0x40], r12
mov rcx, rbx
call fcn.1803277c0
mov r8, qword [rbp + 0x90]
mov ecx, dword [r8 + 0x120]
test ecx, ecx
jne 0x18031deb2
mov eax, r12d
jmp 0x18031dee9
mov rdx, qword [r8 + 0x10]
test ecx, ecx
jns 0x18031dec2
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x61], 0
je 0x18031ded4
lea rax, [0x1804df2b0]
jmp 0x18031dee6
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea rax, [rax + rcx*8]
mov eax, dword [rax + 8]
mov dword [r8 + 0x120], eax
mov ecx, dword [rsp + 0x40]
mov edi, 0x400
mov rax, qword [rbp - 0x38]
inc r15d
add r14, 0x40
mov dword [rsp + 0x48], r15d
mov qword [rbp - 0x78], r14
cmp r15d, dword [rax + 0x14]
jl 0x18031d952
mov r14, qword [rbp - 0x20]
mov r15, qword [rbp + 0x90]
mov ecx, dword [r15 + 0x120]
test ecx, ecx
jne 0x18031df32
mov eax, r12d
jmp 0x18031df69
mov rdx, qword [r15 + 0x10]
test ecx, ecx
jns 0x18031df42
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x61], 0
je 0x18031df54
lea rax, [0x1804df2b0]
jmp 0x18031df66
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea rax, [rax + rcx*8]
mov eax, dword [rax + 8]
mov r8, qword [rbp + 0xb0]
mov dword [r15 + 0x120], eax
mov rax, qword [rbp - 0x40]
mov qword [r8 + 0x40], rax
test rax, rax
je 0x18031df8c
mov eax, dword [rsp + 0x6c]
mov dword [r8 + 8], eax
mov rax, qword [rbp - 0x58]
mov rbx, qword [rbp - 0x50]
test rax, rax
je 0x18031dfaf
mov rdx, rax
mov qword [rax + 0x10], r12
mov rcx, rbx
call fcn.1802d4fa0
mov r8, qword [rbp + 0xb0]
mov rax, qword [rsi]
mov edx, dword [rsi + 0x90]
cmp byte [rax + 0x61], 0
je 0x18031dfc7
lea rax, [0x1804df2b0]
jmp 0x18031dfe3
mov ecx, dword [rbp - 0x80]
lea eax, [rdx - 1]
test ecx, ecx
cmovns eax, ecx
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 4], edx
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [r8 + 0xc]
cmp dword [rsi + 0x94], ecx
jg 0x18031e012
xor r8d, r8d
mov dword [rsp + 0x20], r12d
mov r9d, edx
mov rcx, rsi
lea edx, [r8 + 0xb]
call fcn.1802bcd80
jmp 0x18031e03c
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0xb
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rcx, qword [rsi + 0x18]
mov edx, dword [rsp + 0x68]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18031e05b
mov r8d, edx
mov rdx, rsi
call fcn.1802bd720
jmp 0x18031e06b
mov rcx, qword [rcx + 0x50]
mov eax, dword [rsi + 0x90]
movsxd rdx, edx
mov dword [rcx + rdx*4], eax
mov r10, qword [rbp + 0xa0]
cmp byte [r10 + 0x40], 1
jbe 0x18031e0ec
test r13, r13
je 0x18031e0ec
test rbx, rbx
je 0x18031e0dd
cmp qword [rbx + 0x2d8], 0
je 0x18031e09a
mov rdx, r13
mov rcx, rbx
call fcn.1802979a0
jmp 0x18031e0e5
cmp r13, qword [rbx + 0x1c8]
jae 0x18031e0dd
cmp r13, qword [rbx + 0x1b8]
jb 0x18031e0c0
mov rax, qword [rbx + 0x1b0]
mov qword [r13], rax
mov qword [rbx + 0x1b0], r13
jmp 0x18031e0ec
cmp r13, qword [rbx + 0x1c0]
jb 0x18031e0dd
mov rax, qword [rbx + 0x1a0]
mov qword [r13], rax
mov qword [rbx + 0x1a0], r13
jmp 0x18031e0ec
mov rcx, r13
call fcn.180297930
mov r10, qword [rbp + 0xa0]
cmp dword [rsp + 0x70], 0
mov r9, qword [rbp + 0xb0]
jne 0x18031e1d5
test byte [r14 + 0x12], 4
mov edx, r12d
jne 0x18031e1d5
nop dword [rax]
cmp dword [r9], 0
je 0x18031e123
mov rax, qword [r14]
test byte [rax + 4], 1
je 0x18031e1d5
mov rax, qword [r14 + 0x38]
test qword [r9 + 0x58], rax
jne 0x18031e1d5
test edx, edx
je 0x18031e14e
movzx eax, word [r14 + 0x12]
test di, ax
je 0x18031e14e
mov ecx, 0x200
or ax, cx
mov word [r14 + 0x12], ax
jmp 0x18031e154
or word [r14 + 0x12], 4
movsxd rax, dword [r14 + 0x18]
test eax, eax
js 0x18031e1d5
mov rcx, rax
mov rax, qword [r14 + 8]
shl rcx, 6
mov r14, rcx
add r14, qword [rax + 0x20]
add byte [r14 + 0x16], 0xff
jne 0x18031e1d5
inc edx
test byte [r14 + 0x12], 4
je 0x18031e110
jmp 0x18031e1d5
test r8b, 0x20
je 0x18031e18d
mov byte [r13 + 0x35], 0xad
jmp 0x18031e1cb
mov ecx, r10d
lea r15, [0x180000000]
movzx eax, byte [rcx + r15 + 0x3b5b0c]
movzx edx, byte [rcx + r15 + 0x3b5bc4]
mov rcx, rsi
mov byte [r13 + 0x35], al
mov eax, dword [rsp + 0x40]
mov r8d, eax
mov dword [r13 + 0x38], eax
call fcn.1802bcf30
inc eax
mov byte [r13 + 0x37], 1
mov dword [r13 + 0x3c], eax
mov r9, r13
mov r10, qword [rbp + 0xa0]
mov r8, r12
mov rax, r8
lea r11, [0x1802dcf50]
neg rax
lea r14, [r10 + 0x68]
sbb edx, edx
add edx, 2
mov dword [rbp + 0xa8], edx
nop dword [rax]
nop dword [rax + rax]
mov r15d, dword [r14 + 0x14]
mov r13d, r12d
mov rbx, qword [r14 + 0x20]
test r15d, r15d
jle 0x18031e3eb
nop dword [rax]
nop dword [rax + rax]
movzx ecx, word [rbx + 0x12]
mov edi, r12d
test cl, 6
jne 0x18031e3a9
mov rax, qword [rbx + 0x38]
test qword [r9 + 0x58], rax
je 0x18031e244
or dword [r10 + 0x44], 2
jmp 0x18031e3a9
mov rax, qword [rbp - 0x48]
mov r14, qword [rbx]
test byte [rax + 0x3c], 8
je 0x18031e25c
test byte [r14 + 4], 1
je 0x18031e3a9
cmp edx, 1
jne 0x18031e2b2
mov eax, dword [r9 + 4]
xorps xmm0, xmm0
mov dword [rbp - 0x18], eax
lea rax, [rbp - 0x20]
mov qword [rbp + 0x18], rax
mov qword [rbp - 0x10], r12
mov qword [rbp + 0x10], r12
mov qword [rbp - 0x20], r8
mov qword [rbp - 8], r11
movdqu xmmword [rbp], xmm0
test r14, r14
je 0x18031e2a0
mov rdx, r14
lea rcx, [rbp - 0x10]
call fcn.1802d0670
mov r9, qword [rbp + 0xb0]
cmp word [rbp + 0x14], 0
je 0x18031e2b7
mov r13d, 2
jmp 0x18031e3a9
cmp edx, 3
jge 0x18031e2d9
movzx ecx, word [rbx + 0x12]
mov eax, 0x1000
test ax, cx
je 0x18031e2d9
test r13d, r13d
jne 0x18031e3a9
mov r13d, 3
jmp 0x18031e3a9
mov eax, 0x200
test ax, cx
je 0x18031e353
mov eax, dword [r9 + 0x2c]
test eax, eax
je 0x18031e353
movsxd rdi, dword [rsi + 0x90]
mov r8d, eax
and eax, 1
shr r8d, 1
lea edx, [rax*2 + 0x12]
cmp dword [rsi + 0x94], edi
jg 0x18031e31e
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov rcx, rsi
call fcn.1802bcd80
mov edi, eax
jmp 0x18031e353
lea rcx, [rdi + rdi*2]
lea eax, [rdi + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8], dl
mov word [rax + rcx*8 + 2], r12w
mov dword [rax + rcx*8 + 4], r8d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], 0
mov r8d, dword [rbp - 0x70]
mov r9d, 0x10
mov rcx, qword [rbp + 0x90]
mov rdx, r14
call fcn.1802dc1b0
test edi, edi
je 0x18031e3a4
mov rax, qword [rsi]
mov edx, dword [rsi + 0x90]
cmp byte [rax + 0x61], 0
je 0x18031e388
lea rax, [0x1804df2b0]
jmp 0x18031e3a1
lea eax, [rdx - 1]
test edi, edi
cmovns eax, edi
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
or word [rbx + 0x12], 4
mov edx, dword [rbp + 0xa8]
lea r11, [0x1802dcf50]
mov r9, qword [rbp + 0xb0]
dec r15d
mov r10, qword [rbp + 0xa0]
add rbx, 0x40
mov r8, qword [rbp - 0x28]
test r15d, r15d
jg 0x18031e220
mov r14, qword [rbp - 0x30]
lea r11, [0x1802dcf50]
mov rbx, qword [r14 + 0x20]
mov r15d, dword [r14 + 0x14]
mov r9, qword [rbp + 0xb0]
mov edx, r13d
mov r10, qword [rbp + 0xa0]
mov dword [rbp + 0xa8], edx
test r13d, r13d
jg 0x18031e200
test r15d, r15d
jle 0x18031e515
mov rsi, qword [rbp + 0x90]
add rbx, 0x14
mov r13, qword [rbp - 0x48]
test byte [rbx - 2], 6
jne 0x18031e4fe
movzx eax, word [rbx]
mov edx, 0xb
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x18031e4fe
mov eax, dword [rsp + 0x40]
cmp dword [rbx + 8], eax
jne 0x18031e4fe
test byte [r13 + 0x3c], 8
jne 0x18031e4fe
mov r9, qword [rbp + 0xb8]
mov edx, eax
mov r8d, dword [rbx + 0x14]
mov rcx, r14
mov rdi, qword [rbx - 0x14]
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], 0x83
call fcn.180321210
mov rdx, rax
test rax, rax
je 0x18031e4fe
test byte [rax + 0x12], 4
jne 0x18031e4fe
test byte [rax + 0x14], 1
je 0x18031e4b4
mov rax, qword [rax]
test dword [rax + 4], 0x800
je 0x18031e4b4
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 0x20]
cmp dword [rcx], 1
jg 0x18031e4fe
mov rax, qword [rdx]
mov r9d, 0x10
mov r8d, dword [rbp - 0x70]
lea rdx, [rbp - 0x10]
mov rcx, rsi
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp], xmm1
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rax + 0x30]
movaps xmmword [rbp + 0x20], xmm1
movsd xmm0, qword [rax + 0x40]
movsd qword [rbp + 0x30], xmm0
mov rax, qword [rdi + 0x10]
mov qword [rbp], rax
call fcn.1802dc1b0
dec r15d
add rbx, 0x40
test r15d, r15d
jg 0x18031e423
mov rsi, qword [rbp + 0x98]
mov rdi, qword [rbp + 0xb0]
mov r9d, dword [rdi]
test r9d, r9d
je 0x18031e5d1
mov eax, dword [rsi + 0x90]
mov dword [rdi + 0x1c], eax
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18031e558
mov edx, 0x45
mov dword [rsp + 0x20], r12d
mov rcx, rsi
lea r8d, [rdx - 0x44]
call fcn.1802bcd80
jmp 0x18031e58b
lea eax, [rcx + 1]
mov edx, 1
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
cmp dword [r14 + 0x14], 0
mov rbx, qword [r14 + 0x20]
jle 0x18031e5d1
test byte [rbx + 0x12], 6
jne 0x18031e5c4
mov rax, qword [rbx + 0x38]
test qword [rdi + 0x58], rax
jne 0x18031e5c4
mov r8d, dword [rbp - 0x70]
mov r9d, 0x10
mov rdx, qword [rbx]
mov rcx, qword [rbp + 0x90]
call fcn.1802dc1b0
or word [rbx + 0x12], 4
inc r12d
add rbx, 0x40
cmp r12d, dword [r14 + 0x14]
jl 0x18031e596
mov rax, qword [rdi + 0x58]
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret