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

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x1e8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
movaps xmmword [rax - 0xe8], xmm15
mov r15, rcx
mov r13, qword [0x180093578]
mov qword [rbp + 0x28], r13
mov rax, qword [r13 + 0x1c10]
mov ecx, 1
mov byte [rax + 0x90], cl
mov r14, qword [r13 + 0x1c10]
xor r12d, r12d
cmp byte [r14 + 0x93], r12b
jne 0x18002d542
mov ebx, dword [rbp + 0x158]
mov edi, ebx
shr edi, 0x1a
and dil, cl
mov dword [rsp + 0x5c], edi
mov eax, ebx
shr eax, 0xe
and al, cl
mov dword [rsp + 0x54], eax
mov eax, ebx
shr eax, 0xf
and al, cl
mov dword [rsp + 0x78], eax
mov eax, ebx
shr eax, 0x10
not al
and al, cl
mov dword [rsp + 0x60], eax
mov eax, ebx
shr eax, 0x12
and al, cl
mov dword [rsp + 0x70], eax
test dil, dil
je 0x18002d3e3
call fcn.180010cd8
mov rdx, r15
mov rcx, r14
call fcn.1800085e4
mov esi, eax
mov dword [rsp + 0x6c], eax
movss xmm0, dword [0x180086188]
movss dword [rbp - 0x40], xmm0
movss dword [rsp + 0x20], xmm0
mov r9d, 1
xor r8d, r8d
mov rdx, r15
lea rcx, [rbp - 0x30]
call fcn.18000b464
test dil, dil
je 0x18002d434
movss xmm0, dword [r13 + 0x1980]
mulss xmm0, dword [0x1800860e4]
jmp 0x18002d439
movss xmm0, dword [rbp - 0x2c]
movss xmm6, dword [r13 + 0x159c]
movaps xmm3, xmm6
addss xmm3, xmm6
addss xmm3, xmm0
call fcn.180010ac8
movaps xmm2, xmm0
mov rdx, qword [rbp + 0x150]
mov rdx, qword [rdx]
lea rcx, [rbp + 0x20]
call fcn.180010b38
xorps xmm15, xmm15
movss xmm13, dword [rbp - 0x30]
comiss xmm13, xmm15
jbe 0x18002d487
movaps xmm1, xmm13
addss xmm1, dword [r13 + 0x15b0]
jmp 0x18002d48a
xorps xmm1, xmm1
movss xmm12, dword [r14 + 0xdc]
movss dword [rbp - 0x68], xmm12
movaps xmm0, xmm12
movss xmm8, dword [rbp + 0x24]
addss xmm0, xmm8
movss xmm7, dword [r14 + 0xd8]
movaps xmm9, xmm7
movss xmm10, dword [rbp + 0x20]
addss xmm9, xmm10
movss dword [rbp - 0x48], xmm9
movss dword [rbp - 0x78], xmm7
movss dword [rbp - 0x74], xmm12
movss dword [rbp - 0x70], xmm9
movss dword [rbp - 0x6c], xmm0
movaps xmm0, xmm12
addss xmm0, xmm8
addss xmm1, xmm10
addss xmm1, xmm7
movss dword [rbp - 0x28], xmm7
movss dword [rbp - 0x24], xmm12
movss dword [rbp - 0x20], xmm1
movss dword [rbp - 0x1c], xmm0
mov qword [rbp - 0x80], r14
lea rcx, [rbp - 0x28]
test dil, dil
je 0x18002d6a4
mov ebx, 1
mov r9d, ebx
lea r8, [rbp - 0x78]
mov edx, esi
call fcn.1800107c8
test al, al
jne 0x18002d597
movss xmm1, dword [r13 + 0x159c]
lea rcx, [rbp - 0x28]
call fcn.180010794
call fcn.180010e00
xor al, al
lea r11, [rsp + 0x1e8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
movaps xmm14, xmmword [r11 - 0x98]
movaps xmm15, xmmword [r11 - 0xa8]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, [r13 + 0x1694]
mov ecx, 3
call fcn.1800073e8
movss xmm1, dword [r13 + 0x15a0]
mov ecx, 6
call fcn.180007498
movss xmm1, dword [r13 + 0x15a4]
mov ecx, 7
call fcn.180007498
movss xmm1, dword [rbp - 0x6c]
movss xmm12, dword [rbp - 0x74]
movss dword [rbp - 0x68], xmm12
subss xmm1, xmm12
movss xmm6, dword [rbp - 0x70]
movss dword [rbp - 0x48], xmm6
movaps xmm0, xmm6
movss xmm7, dword [rbp - 0x78]
subss xmm0, xmm7
movss dword [rbp + 0x138], xmm0
movss dword [rbp + 0x13c], xmm1
lea r8, [rbp + 0x138]
mov edx, esi
mov rcx, r15
call fcn.18000baa8
mov r11b, al
mov ecx, 2
call fcn.180007584
mov ecx, ebx
call fcn.180007444
test r11b, r11b
jne 0x18002d63e
call fcn.18000bc70
jmp 0x18002d53d
mov r15, qword [r13 + 0x1c10]
mov qword [rbp - 0x80], r15
movsx ecx, word [r15 + 0x152]
mov eax, dword [r15 + 0x14c]
bts ecx, eax
mov word [r15 + 0x152], cx
movss xmm0, dword [r13 + 0x1598]
addss xmm0, dword [r15 + 0xd8]
movss dword [r15 + 0xd8], xmm0
movss xmm1, dword [r13 + 0x159c]
addss xmm1, dword [r15 + 0xdc]
movss dword [r15 + 0xdc], xmm1
subss xmm10, dword [r15 + 0x84]
jmp 0x18002d6ec
movaps xmm1, xmm6
call fcn.180010794
bt ebx, 0x1c
mov ebx, 1
jb 0x18002d6ec
mov r9d, ebx
lea r8, [rbp - 0x78]
mov edx, esi
lea rcx, [rbp - 0x28]
call fcn.1800107c8
test al, al
je 0x18002d542
movss xmm0, dword [rbp - 0x70]
movss dword [rbp - 0x48], xmm0
movss xmm12, dword [rbp - 0x74]
movss dword [rbp - 0x68], xmm12
movss xmm7, dword [rbp - 0x78]
mov edx, esi
lea rcx, [rbp - 0x78]
call fcn.180008bc4
mov dl, al
mov byte [rsp + 0x74], al
xor r11d, r11d
test al, al
je 0x18002d70b
mov dword [r13 + 0x1f48], ebx
mov rcx, qword [0x180093578]
add rcx, 0x20b0
mov r15, r11
cmp dword [rcx], esi
cmove r15, rcx
mov qword [rbp - 0x28], r15
mov r12d, dword [r14 + 0x128]
mov eax, r12d
shr eax, 8
mov ecx, 1
and al, cl
mov dword [rbp + 0x160], eax
shr r12d, 9
and r12b, cl
test dl, dl
je 0x18002d75a
cmp byte [r13 + 0x420], r11b
mov byte [rbp + 0x138], cl
jne 0x18002d761
mov byte [rbp + 0x138], r11b
mov ebx, dword [r13 + 0x1c5c]
cmp ebx, esi
je 0x18002d78d
cmp dword [r13 + 0x1de4], esi
je 0x18002d788
cmp dword [r13 + 0x1dd8], esi
jne 0x18002d78d
cmp dword [r13 + 0x1dfc], 2
jne 0x18002d78d
mov sil, cl
jmp 0x18002d790
mov sil, r11b
mov byte [rsp + 0x51], sil
test dil, dil
je 0x18002d7c2
test r15, r15
je 0x18002d7c2
test ebx, ebx
jne 0x18002d7c2
mov edx, ecx
mov rcx, qword [rbp - 0x80]
call fcn.180028700
lea ecx, [rbx + 1]
cmp dword [r13 + 0x1c98], eax
jne 0x18002d7bf
mov dil, cl
jmp 0x18002d7d1
xor r11d, r11d
mov dil, r11b
cmp byte [rsp + 0x5c], r11b
je 0x18002d7ec
test r15, r15
je 0x18002d7ec
mov edx, ecx
mov rcx, qword [rbp - 0x80]
call fcn.180028700
xor r11d, r11d
cmp ebx, eax
jne 0x18002d7ec
lea r9d, [r11 + 1]
mov cl, r9b
jmp 0x18002d7f5
mov cl, r11b
mov r9d, 1
mov byte [rsp + 0x50], cl
mov byte [rsp + 0x58], r11b
mov edx, dword [rsp + 0x6c]
cmp ebx, edx
je 0x18002d87b
mov r8d, dword [rbp + 0x158]
test r8b, 0x10
jne 0x18002d818
test sil, sil
je 0x18002d87b
mov eax, dword [rsp + 0x5c]
test al, al
jne 0x18002d87f
mov byte [rsp + 0x68], r9b
movss xmm9, dword [0x180086164]
test r15, r15
je 0x18002d83f
xor al, r9b
cmp byte [r15 + 0x63], al
mov sil, r9b
jne 0x18002d842
mov sil, r11b
cmp byte [rbp + 0x138], r11b
jne 0x18002d894
test dil, dil
mov edi, dword [rbp + 0x160]
jne 0x18002d89a
cmp byte [rsp + 0x51], r11b
jne 0x18002d89a
test dil, dil
jne 0x18002d89a
test r12b, r12b
jne 0x18002d89a
mov byte [rbp + 0x160], r11b
test cl, cl
jne 0x18002d8a1
mov byte [rbp + 0x168], r11b
jmp 0x18002d8ac
mov eax, dword [rsp + 0x5c]
mov byte [rsp + 0x68], r11b
test al, al
je 0x18002d825
mov r8, qword [rbp - 0x80]
movss xmm9, dword [r8 + 0x60]
jmp 0x18002d82e
mov edi, dword [rbp + 0x160]
mov byte [rbp + 0x160], r9b
mov byte [rbp + 0x168], r9b
cmp ebx, edx
jne 0x18002d8b5
test sil, sil
je 0x18002da04
lea r15, [r13 + 0x20b0]
mov qword [rbp - 0x28], r15
mov dword [r15 + 0xe78], 0xbe99999a
or rax, 0xffffffffffffffff
mov r8, qword [rbp + 0x140]
inc rax
cmp byte [r8 + rax], r11b
jne 0x18002d8d6
lea rcx, [r15 + 0x30]
lea ebx, [rax + 1]
mov edx, ebx
call fcn.180016d34
movsxd r8, ebx
mov rdx, qword [rbp + 0x140]
mov rcx, qword [r15 + 0x38]
call fcn.180043be0
and qword [rbp - 0x38], 0
lea rcx, [r15 + 0x10]
mov ebx, dword [rbp + 0x148]
lea edx, [rbx + 1]
call fcn.180016e64
lea rcx, [r15 + 0x20]
xor edx, edx
call fcn.180016d34
mov byte [r15 + 0x40], 0
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rbp + 0x140]
mov edx, ebx
mov rcx, qword [r15 + 0x18]
call fcn.180006a08
mov edx, eax
mov dword [r15 + 4], eax
mov ecx, dword [rbp - 0x38]
sub ecx, dword [rbp + 0x140]
mov dword [r15 + 8], ecx
mov eax, dword [rsp + 0x6c]
xor r11d, r11d
cmp dword [r15], eax
jne 0x18002d99e
test sil, sil
jne 0x18002d99e
mov ecx, edx
cmp dword [r15 + 0x4c], edx
cmovl ecx, dword [r15 + 0x4c]
mov dword [r15 + 0x4c], ecx
mov eax, edx
cmp dword [r15 + 0x50], edx
cmovl eax, dword [r15 + 0x50]
mov dword [r15 + 0x50], eax
cmp dword [r15 + 0x54], edx
cmovl edx, dword [r15 + 0x54]
mov dword [r15 + 0x54], edx
mov esi, dword [rsp + 0x5c]
lea eax, [r11 + 1]
jmp 0x18002d9d3
lea rcx, [r15 + 0x4c]
mov dword [r15], eax
mov dword [r15 + 0x48], r11d
mov esi, dword [rsp + 0x5c]
movzx edx, sil
mov eax, 1
xor edx, eax
call fcn.18002d088
test sil, sil
jne 0x18002d9d3
mov edx, dword [rsp + 0x68]
movzx edx, dl
test dil, dil
cmovne edx, eax
mov dword [rsp + 0x68], edx
test dword [rbp + 0x158], 0x2000
je 0x18002d9e3
mov byte [r15 + 0x58], al
test sil, sil
jne 0x18002da08
test r12b, r12b
jne 0x18002d9ff
cmp byte [rbp + 0x138], r11b
je 0x18002da08
cmp byte [r13 + 0x140], r11b
je 0x18002da08
mov dil, al
jmp 0x18002da0c
mov esi, dword [rsp + 0x5c]
mov edi, dword [rsp + 0x68]
mov r12d, dword [rsp + 0x6c]
mov bl, byte [rbp + 0x160]
cmp dword [r13 + 0x1c5c], r12d
je 0x18002dab5
test bl, bl
je 0x18002dab5
mov rdx, r14
mov ecx, r12d
call fcn.1800089a0
call fcn.1800122b0
mov rcx, r14
call fcn.18000fe64
mov eax, dword [r13 + 0x1c70]
or eax, 3
mov dword [r13 + 0x1c70], eax
xor r11d, r11d
mov r14d, dword [rbp + 0x158]
test sil, sil
jne 0x18002da69
test r14b, r14b
jns 0x18002da73
or eax, 0xc
mov dword [r13 + 0x1c70], eax
or dword [r13 + 0x1c74], 2
mov rax, qword [r13 + 0x1c78]
or rax, 0x180
mov qword [r13 + 0x1c78], rax
test sil, sil
je 0x18002da9f
or rax, 0x60
mov qword [r13 + 0x1c78], rax
test r14d, 0x440
je 0x18002dabc
or rax, 1
mov qword [r13 + 0x1c78], rax
jmp 0x18002dabc
mov r14d, dword [rbp + 0x158]
mov eax, dword [r13 + 0x1c5c]
cmp eax, r12d
jne 0x18002dafb
test r15, r15
jne 0x18002dade
call fcn.180008a60
mov eax, dword [r13 + 0x1c5c]
cmp eax, r12d
jne 0x18002dafb
cmp byte [r13 + 0x420], r11b
je 0x18002db07
cmp byte [rbp + 0x168], r11b
jne 0x18002db07
test bl, bl
jne 0x18002db07
mov byte [rsp + 0x58], 1
jmp 0x18002db07
test r15, r15
je 0x18002db0b
cmp byte [rsp + 0x50], r11b
je 0x18002db0b
mov cl, 1
jmp 0x18002db0e
mov cl, r11b
mov byte [rbp + 0x168], cl
test r15, r15
je 0x18002db2e
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
je 0x18002db2e
test cl, cl
je 0x18002db2e
mov eax, 1
jmp 0x18002db31
mov al, r11b
mov byte [rbp + 0x160], al
mov byte [rsp + 0x65], r11b
mov byte [rsp + 0x50], r11b
mov edx, dword [rsp + 0x54]
test dl, dl
je 0x18002dc06
test r15, r15
je 0x18002dc06
test cl, cl
jne 0x18002db62
test al, al
je 0x18002dc0e
mov qword [rbp + 0x138], r11
mov edx, dword [rbp + 0x148]
inc edx
lea rcx, [r15 + 0x10]
call fcn.180016e64
lea rax, [rbp + 0x138]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rbp + 0x140]
mov edx, dword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
call fcn.180006a08
mov r8d, eax
mov dword [r15 + 4], eax
mov ecx, dword [rbp + 0x138]
sub ecx, dword [rbp + 0x140]
mov dword [r15 + 8], ecx
mov ecx, eax
cmp dword [r15 + 0x4c], eax
cmovl ecx, dword [r15 + 0x4c]
mov dword [r15 + 0x4c], ecx
mov edx, eax
cmp dword [r15 + 0x50], eax
cmovl edx, dword [r15 + 0x50]
mov dword [r15 + 0x50], edx
cmp dword [r15 + 0x54], eax
cmovl r8d, dword [r15 + 0x54]
mov dword [r15 + 0x54], r8d
xor r11d, r11d
mov ecx, r11d
movzx r9d, byte [rbp + 0x160]
cmp edx, r8d
cmovne ecx, r9d
mov al, cl
mov byte [rbp + 0x160], cl
mov cl, byte [rbp + 0x168]
mov edx, dword [rsp + 0x54]
test cl, cl
jne 0x18002dc17
test al, al
jne 0x18002dc17
cmp dword [r13 + 0x1c5c], r12d
jne 0x18002dc2b
test dl, dl
jne 0x18002dc2b
test r15, r15
je 0x18002dc2b
cmp byte [r15 + 0x40], r11b
mov byte [rsp + 0x64], 1
jne 0x18002dc30
mov byte [rsp + 0x64], r11b
cmp byte [rsp + 0x78], r11b
je 0x18002dca8
mov rcx, qword [r13 + 0x1978]
mov edx, 0x2a
call fcn.1800227f8
lea r9, [r13 + 0x2f48]
mov ecx, dword [rcx + 0x14]
mov dword [r9 + 0x14], ecx
mov rdx, qword [r13 + 0x1978]
mov r8d, dword [rdx + 0x58]
mov dword [r9 + 0x58], r8d
mov rdx, qword [r13 + 0x1978]
mov r8d, dword [rdx + 0x5c]
mov dword [r9 + 0x5c], r8d
mov rdx, qword [r13 + 0x1978]
mov r8d, dword [rdx + 0x60]
mov dword [r9 + 0x60], r8d
mov rdx, qword [r13 + 0x1978]
mov r8, qword [rdx + 0x40]
mov qword [r9 + 0x40], r8
mov qword [r9 + 0x38], rax
mov eax, dword [rax + 4]
mov dword [r9 + 0x10], eax
mov rcx, r9
call fcn.18001005c
xor r11d, r11d
mov dword [rbp - 0x44], r11d
cmp dword [r13 + 0x1c5c], r12d
jne 0x18002dfca
mov eax, dword [r15 + 8]
mov dword [rbp - 0x44], eax
mov byte [r15 + 0xe7e], r11b
mov eax, dword [rbp + 0x148]
mov dword [r15 + 0x44], eax
mov dword [r15 + 0xe80], r14d
mov qword [r15 + 0xe88], r11
mov qword [r15 + 0xe90], r11
cmp byte [r13 + 0x130], r11b
sete al
mov byte [r13 + 0x1c69], al
mov edx, 1
mov dword [r13 + 0x32e0], edx
movss xmm2, dword [r13 + 0x128]
subss xmm2, xmm7
subss xmm2, dword [r13 + 0x1598]
addss xmm2, dword [r15 + 0x48]
test sil, sil
je 0x18002dd3b
movss xmm3, dword [r13 + 0x12c]
mov rax, qword [rbp - 0x80]
subss xmm3, dword [rax + 0xdc]
jmp 0x18002dd4c
movss xmm3, dword [r13 + 0x1980]
mulss xmm3, dword [0x18008601c]
mov bl, byte [r13 + 0xc9]
test dil, dil
jne 0x18002de2d
mov cl, byte [rsp + 0x74]
test cl, cl
je 0x18002dd77
mov al, byte [r13 + 0x425]
test bl, bl
jne 0x18002ddb6
test al, al
jne 0x18002de2d
mov al, byte [r15 + 0xe7d]
cmp byte [r13 + 0x420], r11b
je 0x18002ddd6
test al, al
jne 0x18002ddd6
test cl, cl
je 0x18002de48
lea rdx, [r15 + 0x4c]
mov rcx, r15
call fcn.18002bd94
mov dword [r15 + 0xe78], 0xbe99999a
xor r11d, r11d
lea edx, [r11 + 1]
jmp 0x18002de48
test al, al
je 0x18002dd77
mov edx, 0x20000c
mov rcx, r15
call fcn.18002d10c
mov edx, 0x60000d
mov rcx, r15
call fcn.18002d10c
jmp 0x18002ddaa
cmp byte [r13 + 0x130], r11b
je 0x18002de48
test al, al
jne 0x18002de48
movss xmm0, dword [r13 + 0x3b8]
ucomiss xmm0, xmm15
jp 0x18002de05
jne 0x18002de05
movss xmm0, dword [r13 + 0x3bc]
ucomiss xmm0, xmm15
jp 0x18002de05
je 0x18002de48
lea rdx, [r15 + 0x4c]
mov rcx, r15
call fcn.18002bdf4
mov dword [r15 + 0xe78], 0xbe99999a
mov edx, 1
mov byte [r15 + 0xe7c], dl
xor r11d, r11d
jmp 0x18002de48
mov dword [r15 + 0x50], r11d
mov eax, dword [r15 + 4]
mov dword [r15 + 0x54], eax
mov dword [r15 + 0x4c], eax
mov byte [r15 + 0x62], r11b
mov byte [r15 + 0xe7d], dl
cmp byte [r15 + 0xe7d], r11b
je 0x18002de61
cmp byte [r13 + 0x130], r11b
jne 0x18002de61
mov byte [r15 + 0xe7d], r11b
cmp byte [r13 + 0x140], r11b
je 0x18002de73
cmp byte [r13 + 0x142], r11b
je 0x18002de80
test bl, bl
je 0x18002de84
cmp byte [r13 + 0x143], r11b
je 0x18002de84
mov bl, dl
jmp 0x18002de87
mov bl, r11b
mov r8d, 9
bt r14d, 0xa
jae 0x18002df2a
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x3c]
test ecx, ecx
js 0x18002df2a
call fcn.18000b880
test al, al
mov eax, dword [rsp + 0x54]
je 0x18002df2e
test bl, bl
jne 0x18002df2e
cmp byte [r13 + 0x141], r11b
jne 0x18002df2e
test al, al
jne 0x18002df2e
mov rcx, qword [r13 + 0x1558]
movsxd rax, dword [r13 + 0x1550]
lea rdx, [rcx + rax*2]
jmp 0x18002dee9
movzx eax, word [rcx]
add rcx, 2
cmp ax, r8w
je 0x18002df2a
cmp rcx, rdx
jb 0x18002dedc
mov dword [rbp + 0x138], r8d
mov dword [rsp + 0x20], 2
mov edx, r14d
lea rcx, [rbp + 0x138]
call fcn.18002d150
xor r11d, r11d
test al, al
je 0x18002df24
mov edx, dword [rbp + 0x138]
mov rcx, r15
call fcn.18002d10c
xor r11d, r11d
mov r8d, 9
mov eax, dword [rsp + 0x54]
lea rsi, [r13 + 0x1550]
cmp dword [rsi], r11d
jle 0x18002dfca
test bl, bl
jne 0x18002dfbd
test al, al
jne 0x18002dfbd
cmp byte [rsp + 0x51], r11b
jne 0x18002dfbd
mov edi, r11d
mov rbx, r11
mov r12d, 1
mov rax, qword [r13 + 0x1558]
movzx ecx, word [rbx + rax]
mov dword [rbp + 0x138], ecx
cmp ecx, r8d
jne 0x18002df78
cmp byte [r13 + 0x141], r11b
jne 0x18002dfad
mov dword [rsp + 0x20], 2
mov edx, r14d
lea rcx, [rbp + 0x138]
call fcn.18002d150
xor r11d, r11d
test al, al
je 0x18002dfa7
mov edx, dword [rbp + 0x138]
mov rcx, r15
call fcn.18002d10c
xor r11d, r11d
mov r8d, 9
add edi, r12d
add rbx, 2
cmp edi, dword [rsi]
jl 0x18002df59
mov r12d, dword [rsp + 0x6c]
xor edx, edx
mov rcx, rsi
call fcn.180016e64
xor r11d, r11d
mov cl, r11b
mov byte [rbp + 0x138], cl
mov eax, dword [r13 + 0x1c5c]
mov r8d, 0xa
mov dword [rbp - 0x38], r8d
cmp eax, r12d
jne 0x18002ecfe
cmp byte [r13 + 0x1c68], r11b
jne 0x18002e307
cmp byte [rsp + 0x58], r11b
jne 0x18002e307
movaps xmm0, xmm8
subss xmm0, dword [r13 + 0x159c]
divss xmm0, dword [r13 + 0x1980]
cvttss2si eax, xmm0
lea r12d, [r8 - 9]
mov ecx, r12d
cmp eax, r12d
cmovge ecx, eax
mov dword [rsp + 0x68], ecx
mov dword [r15 + 0x5c], ecx
mov al, byte [r13 + 0x141]
neg al
sbb ebx, ebx
and ebx, 0x400000
mov dl, byte [r13 + 0xc9]
test dl, dl
je 0x18002e061
cmp dword [r13 + 0x3c0], r8d
jne 0x18002e061
mov cl, r12b
mov eax, r8d
jmp 0x18002e06f
mov eax, dword [r13 + 0x3c0]
mov cl, r11b
test dl, dl
je 0x18002e09b
mov dl, byte [r13 + 0x142]
mov sil, dl
mov r9b, cl
mov r8d, eax
cmp byte [r13 + 0x143], r11b
je 0x18002e0a8
cmp byte [r13 + 0x140], r11b
jne 0x18002e0a8
cmp dl, r11b
jne 0x18002e0a8
mov r11b, r12b
jmp 0x18002e0a8
mov sil, byte [r13 + 0x140]
mov r9b, r11b
mov r8d, eax
xor edx, edx
cmp byte [r13 + 0xc9], dl
je 0x18002e0b9
cmp r8d, 8
jmp 0x18002e0bc
cmp r8d, r12d
sete r14b
test r14b, r14b
je 0x18002e0e1
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x88]
test ecx, ecx
js 0x18002e0e1
call fcn.18000b880
xor edx, edx
test al, al
jne 0x18002e100
cmp r8d, 2
jne 0x18002e12a
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x64]
test ecx, ecx
js 0x18002e12a
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e12a
mov edi, dword [rsp + 0x78]
mov r10d, dword [rsp + 0x5c]
cmp byte [rsp + 0x54], dl
jne 0x18002e133
test dil, dil
jne 0x18002e133
test r10b, r10b
je 0x18002e123
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
je 0x18002e133
mov byte [rsp + 0x51], r12b
jmp 0x18002e137
mov r10d, dword [rsp + 0x5c]
mov edi, dword [rsp + 0x78]
mov byte [rsp + 0x51], dl
test r14b, r14b
je 0x18002e158
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x80]
test ecx, ecx
js 0x18002e158
call fcn.18000b880
xor edx, edx
test al, al
jne 0x18002e176
cmp r8d, r12d
jne 0x18002e18a
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x60]
test ecx, ecx
js 0x18002e18a
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e18a
test dil, dil
jne 0x18002e18a
test r10b, r10b
je 0x18002e18d
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
jne 0x18002e18d
mov r12b, dl
test r14b, r14b
je 0x18002e1ae
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x84]
test ecx, ecx
js 0x18002e1ae
call fcn.18000b880
xor edx, edx
test al, al
jne 0x18002e1cd
cmp r8d, 2
jne 0x18002e1e2
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x60]
test ecx, ecx
js 0x18002e1e2
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e1e2
mov r8d, dword [rsp + 0x54]
test r8b, r8b
jne 0x18002e1e7
mov r10d, 1
mov dil, r10b
jmp 0x18002e1f0
mov r8d, dword [rsp + 0x54]
mov dil, dl
mov r10d, 1
test r14b, r14b
je 0x18002e222
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x90]
test ecx, ecx
js 0x18002e222
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e222
test r8b, r8b
mov r8d, dword [rsp + 0x60]
jne 0x18002e227
test r8b, r8b
je 0x18002e227
jmp 0x18002e22f
mov r8d, dword [rsp + 0x60]
mov r10b, dl
test r14b, r14b
je 0x18002e24b
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x8c]
test ecx, ecx
js 0x18002e24b
call fcn.18000b880
xor edx, edx
test al, al
jne 0x18002e26c
test r9b, r9b
je 0x18002e27f
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x90]
test ecx, ecx
js 0x18002e27f
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e27f
cmp byte [rsp + 0x54], dl
jne 0x18002e27f
test r8b, r8b
je 0x18002e27f
mov r8d, 1
jmp 0x18002e282
mov r8b, dl
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x40]
test ecx, ecx
js 0x18002e477
call fcn.18000b880
test al, al
je 0x18002e477
neg sil
sbb edx, edx
and edx, 0xc
add edx, 0x200000
mov eax, 0x200004
test r11b, r11b
cmovne edx, eax
or edx, ebx
mov rcx, r15
call fcn.18002d10c
mov r8d, 1
xor r11d, r11d
mov cl, byte [rbp + 0x138]
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
je 0x18002e2e9
cmp byte [rbp + 0x168], r11b
mov al, r8b
jne 0x18002e2ec
mov al, r11b
or byte [rbp + 0x160], al
mov eax, dword [r13 + 0x1c5c]
mov r12d, dword [rsp + 0x6c]
cmp eax, r12d
jne 0x18002ecfe
mov qword [rbp + 0x138], r11
mov esi, r11d
test cl, cl
je 0x18002e9eb
cmp byte [rsp + 0x54], r11b
jne 0x18002e3e5
mov rax, qword [rbp + 0x140]
mov r8, qword [r15 + 0x38]
sub r8, rax
mov r9d, 1
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x18002e34b
add rax, r9
test ecx, ecx
jne 0x18002e338
test edx, edx
je 0x18002e3e5
mov r14, qword [r15 + 0x38]
mov qword [rbp + 0x138], r14
mov esi, dword [r15 + 0x30]
sub esi, r9d
and qword [rbp + 0x28], 0
mov edi, r11d
mov rbx, r11
mov qword [rbp + 0x30], rbx
test esi, esi
jle 0x18002e3b6
movsxd rbx, esi
add rbx, r14
mov rdx, rbx
mov rcx, r14
call fcn.180006aac
lea edx, [rax + 1]
lea rcx, [rbp + 0x28]
call fcn.180016e64
xor eax, eax
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, r14
mov edi, dword [rbp + 0x28]
mov edx, edi
mov rbx, qword [rbp + 0x30]
mov rcx, rbx
call fcn.180006a08
xor r11d, r11d
lea rdx, [r15 + 0x4c]
lea eax, [rdi - 1]
mov r9d, r11d
test esi, esi
cmovg r9d, eax
mov r8, rbx
mov rcx, r15
call fcn.18002d098
nop
xor r11d, r11d
test rbx, rbx
je 0x18002e3e5
mov rcx, rbx
call fcn.180008f08
xor r11d, r11d
mov r10d, dword [rbp + 0x158]
cmp byte [rsp + 0x50], r11b
je 0x18002e3fd
test r10b, 0x20
jne 0x18002e9f2
mov edi, dword [rsp + 0x70]
mov r9, qword [rbp + 0x140]
mov rbx, qword [rbp + 0x138]
test rbx, rbx
je 0x18002ece9
test dil, dil
je 0x18002ecc5
lea rcx, [rbp - 0x18]
call fcn.18002d138
mov dword [rbp - 0x18], 0x40000
mov dword [rbp - 0x14], r10d
mov qword [rbp], r9
mov dword [rbp + 8], esi
lea eax, [rsi + 1]
cmp dword [rbp + 0x148], eax
cmovge eax, dword [rbp + 0x148]
mov dword [rbp + 0xc], eax
mov qword [rbp - 0x10], r11
lea rcx, [rbp - 0x18]
call r11
mov r9, qword [rbp]
mov qword [rbp + 0x140], r9
mov ecx, dword [rbp + 0xc]
lea esi, [rcx - 1]
cmp dword [rbp + 8], esi
cmovl esi, dword [rbp + 8]
jmp 0x18002eccb
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x44]
test ecx, ecx
js 0x18002e4a6
call fcn.18000b880
test al, al
je 0x18002e4a6
neg sil
sbb edx, edx
and edx, 0xc
add edx, 0x200001
mov eax, 0x200005
jmp 0x18002e2b4
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x48]
test ecx, ecx
js 0x18002e506
call fcn.18000b880
xor edx, edx
mov r9d, dword [rsp + 0x5c]
test al, al
je 0x18002e50b
test r9b, r9b
je 0x18002e50b
cmp byte [r13 + 0x140], dl
je 0x18002e4f6
mov rdx, qword [rbp - 0x80]
movss xmm1, dword [rdx + 0x60]
subss xmm1, dword [r13 + 0x1980]
maxss xmm1, xmm15
mov rcx, rdx
call fcn.180011460
jmp 0x18002e2c4
movzx eax, r11b
lea edx, [rax*4 + 0x200002]
jmp 0x18002e2ba
mov r9d, dword [rsp + 0x5c]
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x4c]
test ecx, ecx
js 0x18002e562
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e562
test r9b, r9b
je 0x18002e562
cmp byte [r13 + 0x140], dl
je 0x18002e552
call fcn.18001143c
mov rax, qword [rbp - 0x80]
movss xmm1, dword [rax + 0x60]
addss xmm1, dword [r13 + 0x1980]
minss xmm1, xmm0
mov rcx, rax
jmp 0x18002e4ec
movzx eax, r11b
lea edx, [rax*4 + 0x200003]
jmp 0x18002e2ba
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x50]
test ecx, ecx
js 0x18002e5aa
call fcn.18000b880
test al, al
je 0x18002e5aa
test r9b, r9b
je 0x18002e5aa
or ebx, 0x20000e
mov edx, ebx
mov rcx, r15
call fcn.18002d10c
movd xmm0, dword [rsp + 0x68]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [r13 + 0x1980]
subss xmm9, xmm0
jmp 0x18002e2c4
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x54]
test ecx, ecx
js 0x18002e5f2
call fcn.18000b880
test al, al
je 0x18002e5f2
test r9b, r9b
je 0x18002e5f2
or ebx, 0x20000f
mov edx, ebx
mov rcx, r15
call fcn.18002d10c
movd xmm0, dword [rsp + 0x68]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [r13 + 0x1980]
addss xmm9, xmm0
jmp 0x18002e2c4
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x58]
test ecx, ecx
js 0x18002e623
call fcn.18000b880
test al, al
je 0x18002e623
mov al, byte [r13 + 0x140]
neg al
mov eax, 0x200004
sbb edx, edx
and edx, 2
add edx, eax
jmp 0x18002e2ba
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x5c]
test ecx, ecx
js 0x18002e64a
call fcn.18000b880
test al, al
je 0x18002e64a
mov al, byte [r13 + 0x140]
neg al
mov eax, 0x200005
jmp 0x18002e617
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x64]
test ecx, ecx
js 0x18002e678
call fcn.18000b880
mov r11d, dword [rsp + 0x54]
test al, al
je 0x18002e67d
test r11b, r11b
jne 0x18002e67d
or ebx, 0x200008
mov edx, ebx
jmp 0x18002e2bc
mov r11d, dword [rsp + 0x54]
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x68]
test ecx, ecx
js 0x18002e6ea
call fcn.18000b880
xor edx, edx
test al, al
je 0x18002e6ea
test r11b, r11b
jne 0x18002e6ea
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
jne 0x18002e6e2
test sil, sil
je 0x18002e6b1
mov edx, 0x60000c
jmp 0x18002e6da
cmp byte [r13 + 0xc9], dl
je 0x18002e6e2
cmp byte [r13 + 0x143], dl
je 0x18002e6e2
cmp byte [r13 + 0x142], dl
jne 0x18002e6e2
cmp byte [r13 + 0x140], dl
jne 0x18002e6e2
mov edx, 0x600004
mov rcx, r15
call fcn.18002d10c
or ebx, 0x200009
jmp 0x18002e671
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x70]
test ecx, ecx
js 0x18002e701
call fcn.18000b880
test al, al
jne 0x18002e718
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x78]
test ecx, ecx
js 0x18002e788
call fcn.18000b880
test al, al
je 0x18002e788
mov edx, dword [rbp + 0x158]
mov eax, edx
shr eax, 0xb
mov r8d, 1
and al, r8b
test r9b, r9b
je 0x18002e740
mov cl, byte [r13 + 0x140]
test al, al
je 0x18002e74f
test cl, cl
jne 0x18002e753
mov byte [rsp + 0x58], r8b
mov byte [rsp + 0x50], r8b
jmp 0x18002e2ca
test cl, cl
jne 0x18002e740
test r11b, r11b
jne 0x18002e2ca
mov eax, 0xa
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x20], 2
lea rcx, [rsp + 0x60]
call fcn.18002d150
test al, al
je 0x18002e2c4
mov edx, dword [rsp + 0x60]
jmp 0x18002e2bc
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x74]
xor r11d, r11d
test ecx, ecx
js 0x18002e7b3
call fcn.18000b880
test al, al
je 0x18002e7b3
lea r8d, [r11 + 1]
mov cl, r8b
mov byte [rsp + 0x58], r8b
jmp 0x18002e2d3
test r10b, r10b
jne 0x18002e9ba
test r8b, r8b
jne 0x18002e9ba
test r14b, r14b
je 0x18002e807
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x7c]
test ecx, ecx
js 0x18002e807
call fcn.18000b880
test al, al
je 0x18002e807
mov dword [r15 + 0x50], r11d
mov eax, dword [r15 + 4]
mov dword [r15 + 0x54], eax
mov dword [r15 + 0x4c], eax
mov byte [r15 + 0x62], r11b
mov r8d, 1
mov byte [r15 + 0xe7c], r8b
jmp 0x18002e2cd
mov al, byte [rsp + 0x51]
test al, al
jne 0x18002e8fb
test r12b, r12b
jne 0x18002e8fb
test dil, dil
je 0x18002e9e0
call fcn.180008f2c
mov rbx, rax
xor r12d, r12d
test rax, rax
je 0x18002e2c4
or rax, 0xffffffffffffffff
inc rax
cmp byte [rbx + rax], r12b
jne 0x18002e83d
movsxd rcx, eax
lea rcx, [rcx*2 + 2]
call fcn.180008ee8
mov rsi, rax
mov edi, r12d
cmp byte [rbx], r12b
je 0x18002e8c4
mov r14, rax
mov r13d, dword [rbp + 0x158]
mov r15d, 1
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.180006868
movsxd rcx, eax
add rbx, rcx
cmp dword [rsp + 0x60], r12d
je 0x18002e8bc
mov dword [rsp + 0x20], 5
mov edx, r13d
lea rcx, [rsp + 0x60]
call fcn.18002d150
test al, al
je 0x18002e8b7
movzx eax, word [rsp + 0x60]
mov word [r14], ax
add edi, r15d
add r14, 2
cmp byte [rbx], r12b
jne 0x18002e871
mov r15, qword [rbp - 0x28]
mov r13, qword [rbp + 0x28]
movsxd rax, edi
mov word [rsi + rax*2], r12w
test edi, edi
jle 0x18002e8ee
lea rdx, [r15 + 0x4c]
mov r9d, edi
mov r8, rsi
mov rcx, r15
call fcn.18002d090
mov eax, 1
mov byte [r15 + 0xe7c], al
mov rcx, rsi
call fcn.180008f08
jmp 0x18002e2c4
cmp qword [r13 + 0x108], r11
je 0x18002e97c
mov eax, dword [r15 + 0x50]
mov ecx, dword [r15 + 0x54]
cmp eax, ecx
je 0x18002e91a
mov edx, ecx
cmovge edx, eax
cmovl ecx, eax
jmp 0x18002e921
mov edx, dword [r15 + 4]
mov ecx, r11d
movsxd r14, edx
mov rax, qword [r15 + 0x18]
movsxd rsi, ecx
lea rdx, [rax + r14*2]
lea rcx, [rax + rsi*2]
call fcn.180006c00
mov r12d, 1
lea ebx, [r12 + rax]
movsxd rcx, ebx
call fcn.180008ee8
mov rdi, rax
mov rcx, qword [r15 + 0x18]
lea r9, [rcx + r14*2]
lea r8, [rcx + rsi*2]
mov edx, ebx
mov rcx, rax
call fcn.180006b28
mov rcx, rdi
call fcn.180008f54
mov rcx, rdi
call fcn.180008f08
mov al, byte [rsp + 0x51]
xor r11d, r11d
jmp 0x18002e982
mov r12d, 1
test al, al
je 0x18002e9e0
lea rdx, [r15 + 0x4c]
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
jne 0x18002e9a6
mov dword [r15 + 0x50], r11d
mov eax, dword [r15 + 4]
mov dword [r15 + 0x54], eax
mov dword [rdx], eax
mov byte [r15 + 0x62], r11b
mov byte [r15 + 0xe7c], r12b
mov rcx, r15
call fcn.18002c114
jmp 0x18002e2c4
movzx edx, r10b
xor edx, 1
add edx, 0x20000a
mov rcx, r15
call fcn.18002d10c
mov eax, dword [r15 + 0x4c]
mov dword [r15 + 0x54], eax
mov dword [r15 + 0x50], eax
jmp 0x18002e2c4
mov r8d, 1
jmp 0x18002e2cd
mov r10d, dword [rbp + 0x158]
cmp byte [rsp + 0x54], r11b
jne 0x18002ea34
mov eax, 1
mov byte [r15 + 0x40], al
mov edx, dword [r15 + 0x10]
lea edx, [rdx*4 + 1]
lea rcx, [r15 + 0x20]
call fcn.180016d34
xor r9d, r9d
mov r8, qword [r15 + 0x18]
mov edx, dword [r15 + 0x20]
mov rcx, qword [r15 + 0x28]
call fcn.180006b28
mov r10d, dword [rbp + 0x158]
xor r11d, r11d
test r10d, 0x801c0
je 0x18002ec6f
mov r9d, 0x16
lea r8d, [r9 + 0x2a]
test r8b, r10b
je 0x18002ea6c
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x3c]
test ecx, ecx
js 0x18002ea6c
call fcn.18000b880
test al, al
je 0x18002ea6c
mov r9d, r11d
jmp 0x18002ead6
mov r8d, 0x80
test r8b, r10b
je 0x18002eab3
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x48]
test ecx, ecx
js 0x18002ea94
call fcn.18000b880
test al, al
je 0x18002ea94
lea r9d, [r8 - 0x7d]
jmp 0x18002ead6
mov rax, qword [0x180093578]
mov ecx, dword [rax + 0x4c]
test ecx, ecx
js 0x18002eab3
call fcn.18000b880
test al, al
je 0x18002eab3
mov r9d, 4
jmp 0x18002ead6
mov r8d, 0x80000
test r8d, r10d
je 0x18002eac7
cmp byte [r15 + 0xe7e], r11b
jne 0x18002ead6
mov r8d, pe_nt_image_headers64
test r8d, r10d
je 0x18002ec6f
mov dword [rbp - 8], r11d
mov word [rbp + 0x11], r11w
mov byte [rbp + 0x13], r11b
mov dword [rbp - 0x18], r8d
mov dword [rbp - 0x14], r10d
mov qword [rbp - 0x10], r11
mov dword [rbp - 4], r9d
mov rax, qword [r15 + 0x28]
mov qword [rbp], rax
mov eax, dword [r15 + 8]
mov dword [rbp + 8], eax
mov eax, dword [r15 + 0x44]
mov dword [rbp + 0xc], eax
mov byte [rbp + 0x10], r11b
mov r11, qword [r15 + 0x18]
movsxd rax, dword [r15 + 0x4c]
lea rdx, [r11 + rax*2]
mov rcx, r11
call fcn.180006c00
mov ebx, eax
mov dword [rbp + 0x14], eax
movsxd rdx, dword [r15 + 0x50]
lea rdx, [r11 + rdx*2]
mov rcx, r11
call fcn.180006c00
mov r14d, eax
mov dword [rbp + 0x18], eax
movsxd rdx, dword [r15 + 0x54]
lea rdx, [r11 + rdx*2]
mov rcx, r11
call fcn.180006c00
mov r12d, eax
mov dword [rbp + 0x1c], eax
lea rcx, [rbp - 0x18]
xor eax, eax
call rax
mov dil, byte [rbp + 0x10]
movsxd rcx, dword [rbp + 0x14]
cmp ecx, ebx
jne 0x18002eb6e
xor r11d, r11d
test dil, dil
je 0x18002eb93
mov rdx, rcx
mov rcx, qword [rbp]
add rdx, rcx
call fcn.180006aac
mov dword [r15 + 0x4c], eax
mov eax, 1
mov byte [r15 + 0xe7c], al
mov ecx, dword [rbp + 0x14]
xor r11d, r11d
movsxd rax, dword [rbp + 0x18]
cmp eax, r14d
jne 0x18002eba1
test dil, dil
je 0x18002ebc4
cmp eax, ecx
jne 0x18002ebab
mov ecx, dword [r15 + 0x4c]
jmp 0x18002ebbd
mov rcx, qword [rbp]
lea rdx, [rcx + rax]
call fcn.180006aac
mov ecx, eax
mov eax, dword [rbp + 0x18]
mov dword [r15 + 0x50], ecx
xor r11d, r11d
movsxd rcx, dword [rbp + 0x1c]
cmp ecx, r12d
jne 0x18002ebd6
test dil, dil
je 0x18002ec63
cmp ecx, eax
jne 0x18002ebe0
mov eax, dword [r15 + 0x50]
jmp 0x18002ebf2
mov rdx, rcx
mov rcx, qword [rbp]
add rdx, rcx
call fcn.180006aac
xor r11d, r11d
mov dword [r15 + 0x54], eax
test dil, dil
mov edi, dword [rsp + 0x70]
je 0x18002ecb7
mov eax, dword [rbp - 0x44]
cmp dword [rbp + 8], eax
jle 0x18002ec23
test dil, dil
je 0x18002ec23
lea rcx, [r15 + 0x10]
mov edx, dword [rcx]
sub edx, eax
add edx, dword [rbp + 8]
call fcn.180016e64
xor r11d, r11d
mov qword [rsp + 0x20], r11
xor r9d, r9d
mov r8, qword [rbp]
mov edx, dword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
call fcn.180006a08
mov dword [r15 + 4], eax
mov eax, dword [rbp + 8]
mov dword [r15 + 8], eax
mov dword [r15 + 0xe78], 0xbe99999a
mov r12d, dword [rsp + 0x6c]
mov r10d, dword [rbp + 0x158]
xor r11d, r11d
jmp 0x18002ec73
mov r12d, dword [rsp + 0x6c]
mov r10d, dword [rbp + 0x158]
mov edi, dword [rsp + 0x70]
mov r9, qword [rbp + 0x140]
cmp byte [rsp + 0x54], r11b
jne 0x18002e408
mov rax, qword [r15 + 0x28]
mov r8, r9
sub r8, rax
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x18002eca2
inc rax
test ecx, ecx
jne 0x18002ec8f
test edx, edx
je 0x18002e408
mov rbx, qword [r15 + 0x28]
mov esi, dword [r15 + 8]
jmp 0x18002e40f
mov r12d, dword [rsp + 0x6c]
mov r10d, dword [rbp + 0x158]
jmp 0x18002ec73
mov ecx, dword [rbp + 0x148]
lea eax, [rsi + 1]
cmp eax, ecx
cmovl ecx, eax
movsxd r8, ecx
mov rdx, rbx
mov rcx, r9
call fcn.18000625c
mov byte [rsp + 0x65], 1
xor r11d, r11d
mov dword [r15 + 0xe80], r11d
mov qword [r15 + 0xe88], r11
mov qword [r15 + 0xe90], r11
cmp byte [rsp + 0x58], r11b
je 0x18002ed13
cmp dword [r13 + 0x1c5c], r12d
jne 0x18002ed13
call fcn.180008a60
movss xmm11, dword [0x18008605c]
mov r14d, dword [rsp + 0x5c]
test r14b, r14b
jne 0x18002ed73
mov ebx, 1
mov r8d, ebx
mov edx, r12d
lea rcx, [rbp - 0x78]
call fcn.180007ff4
movaps xmm1, xmm11
lea ecx, [rbx + 6]
call fcn.1800072c8
movss xmm5, dword [r13 + 0x15a0]
movss dword [rsp + 0x20], xmm5
mov r9b, bl
mov r8d, eax
mov rdx, qword [rbp - 0x70]
movaps xmm0, xmm7
unpcklps xmm0, xmm12
movq rcx, xmm0
call fcn.180007d9c
xor r11d, r11d
movss dword [rbp - 0x58], xmm7
movss dword [rbp - 0x54], xmm12
movaps xmm0, xmm10
addss xmm0, xmm7
movss dword [rbp - 0x50], xmm0
movaps xmm1, xmm12
addss xmm1, xmm8
movss dword [rbp - 0x4c], xmm1
mov r10, qword [rbp - 0x80]
lea rax, [rbp + 0x138]
test r14b, r14b
je 0x18002edbc
movsd xmm0, qword [r10 + 0xd8]
movsd qword [rbp + 0x138], xmm0
jmp 0x18002ede2
addss xmm7, dword [r13 + 0x1598]
movss dword [rbp + 0x138], xmm7
movaps xmm0, xmm12
addss xmm0, dword [r13 + 0x159c]
movss dword [rbp + 0x13c], xmm0
movsd xmm0, qword [rax]
movsd qword [rbp - 0x60], xmm0
movaps xmm14, xmm15
movaps xmm8, xmm15
cmp byte [rsp + 0x64], r11b
je 0x18002ee07
mov rbx, qword [r15 + 0x28]
mov qword [rbp + 0x140], rbx
jmp 0x18002ee0e
mov rbx, qword [rbp + 0x140]
mov qword [rbp + 0x138], r11
mov al, byte [rbp + 0x168]
mov dl, byte [rbp + 0x160]
test al, al
jne 0x18002eeed
test dl, dl
jne 0x18002eeed
test r14b, r14b
je 0x18002ee64
lea rdx, [rbp + 0x138]
mov rcx, rbx
call fcn.18002b790
movd xmm8, eax
cvtdq2ps xmm8, xmm8
movaps xmm14, xmm10
mulss xmm8, dword [r13 + 0x1980]
mov rdi, qword [rbp + 0x138]
jmp 0x18002ee95
cmp dword [r13 + 0x1c5c], r12d
jne 0x18002ee73
movsxd rdi, dword [r15 + 8]
jmp 0x18002ee80
or rdi, 0xffffffffffffffff
inc rdi
cmp byte [rbx + rdi], r11b
jne 0x18002ee77
add rdi, rbx
mov rax, rdi
sub rax, rbx
cmp rax, 0x200000
jge 0x18002f5e3
movaps xmm1, xmm11
xor ecx, ecx
call fcn.1800072c8
lea rdx, [rbp - 0x58]
test r14b, r14b
cmovne rdx, r11
mov qword [rsp + 0x40], rdx
movss dword [rsp + 0x38], xmm15
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x60]
movss xmm2, dword [r13 + 0x1980]
mov rdx, qword [r13 + 0x1978]
mov rcx, qword [r10 + 0x2b0]
call fcn.18001f938
xor r11d, r11d
jmp 0x18002f5e3
movsxd rdi, dword [r15 + 8]
add rdi, rbx
mov qword [rbp + 0x28], rdi
mov r12, qword [r15 + 0x18]
movaps xmm7, xmm15
movaps xmm6, xmm15
mov r10, r11
mov r9, r11
mov qword [rbp + 0x138], r11
mov r8d, 0xfffffc18
mov r14d, r8d
mov ecx, r11d
mov ebx, 1
test al, al
je 0x18002ef34
movsxd rax, dword [r15 + 0x4c]
lea r10, [r12 + rax*2]
or r8d, 0xffffffff
mov ecx, ebx
test dl, dl
je 0x18002ef58
mov eax, dword [r15 + 0x54]
cmp dword [r15 + 0x50], eax
cmovl eax, dword [r15 + 0x50]
cdqe
lea r9, [r12 + rax*2]
mov qword [rbp + 0x138], r9
or r14d, 0xffffffff
add ecx, ebx
movzx eax, byte [rsp + 0x5c]
add ecx, eax
mov esi, r11d
mov rax, r12
movzx edx, word [r12]
jmp 0x18002efa3
cmp dx, word [rbp - 0x38]
jne 0x18002ef9c
add esi, ebx
cmp r8d, 0xffffffff
jne 0x18002ef88
cmp rax, r10
jb 0x18002ef88
mov r8d, esi
sub ecx, ebx
test ecx, ecx
jle 0x18002efa8
cmp r14d, 0xffffffff
jne 0x18002ef9c
cmp rax, r9
jb 0x18002ef9c
mov r14d, esi
sub ecx, ebx
test ecx, ecx
jle 0x18002efa8
add rax, 2
movzx edx, word [rax]
test dx, dx
jne 0x18002ef6c
add esi, ebx
mov ebx, esi
cmp r8d, 0xffffffff
cmovne ebx, r8d
cmp r14d, 0xffffffff
cmove r14d, esi
mov rdx, r12
mov rcx, r10
call fcn.1800063a8
mov byte [rsp + 0x28], r11b
xor r9d, r9d
mov r8, r10
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.18002b7cc
movss xmm12, dword [rax]
movss xmm0, dword [r13 + 0x1980]
movd xmm13, ebx
cvtdq2ps xmm13, xmm13
mulss xmm13, xmm0
xor r11d, r11d
test r14d, r14d
js 0x18002f044
mov rdx, r12
mov r8, qword [rbp + 0x138]
mov rcx, r8
call fcn.1800063a8
mov byte [rsp + 0x28], r11b
mov rdx, rax
lea rcx, [rbp + 0x138]
call fcn.18002b7cc
movss xmm6, dword [rax]
movss xmm0, dword [r13 + 0x1980]
movd xmm7, r14d
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm0
xor r11d, r11d
mov r14d, dword [rsp + 0x5c]
test r14b, r14b
je 0x18002f060
movaps xmm14, xmm10
movd xmm8, esi
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm0
mov sil, byte [rbp + 0x168]
test sil, sil
je 0x18002f17e
cmp byte [r15 + 0xe7c], r11b
je 0x18002f17e
test dword [rbp + 0x158], 0x1000
jne 0x18002f0dd
movaps xmm0, xmm10
mulss xmm0, dword [0x180086008]
subss xmm10, dword [r13 + 0x1598]
movss xmm2, dword [r15 + 0x48]
movaps xmm1, xmm12
comiss xmm2, xmm12
jbe 0x18002f0bc
subss xmm1, xmm0
movaps xmm0, xmm15
maxss xmm0, xmm1
jmp 0x18002f0ca
subss xmm1, xmm10
comiss xmm1, xmm2
jb 0x18002f0e1
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [r15 + 0x48], xmm0
jmp 0x18002f0e1
mov dword [r15 + 0x48], r11d
test r14b, r14b
je 0x18002f177
movaps xmm0, xmm13
subss xmm0, dword [r13 + 0x1980]
comiss xmm9, xmm0
jbe 0x18002f108
movaps xmm9, xmm15
maxss xmm9, xmm0
jmp 0x18002f12a
movaps xmm0, xmm13
subss xmm0, dword [rbp + 0x24]
comiss xmm0, xmm9
jb 0x18002f12a
movss xmm9, dword [r13 + 0x159c]
addss xmm9, xmm9
addss xmm9, xmm0
movss xmm2, dword [r13 + 0x159c]
comiss xmm15, xmm9
jbe 0x18002f13f
movaps xmm2, xmm15
jmp 0x18002f157
addss xmm2, xmm2
addss xmm2, xmm8
subss xmm2, dword [rbp + 0x24]
maxss xmm2, xmm15
minss xmm2, xmm9
mov rax, qword [rbp - 0x80]
movss xmm0, dword [rax + 0x60]
subss xmm0, xmm2
movss xmm1, dword [rbp - 0x5c]
addss xmm1, xmm0
movss dword [rbp - 0x5c], xmm1
movss dword [rax + 0x60], xmm2
mov byte [r15 + 0xe7c], r11b
movss xmm9, dword [r15 + 0x48]
cmp byte [rbp + 0x160], 0
je 0x18002f3c9
mov edx, dword [r15 + 0x54]
mov ecx, dword [r15 + 0x50]
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
cdqe
lea r10, [r12 + rax*2]
cmovge edx, ecx
movsxd rax, edx
lea rbx, [r12 + rax*2]
test sil, sil
je 0x18002f1bb
movaps xmm1, xmm11
jmp 0x18002f1c3
movss xmm1, dword [0x180086024]
mov ecx, 0x2f
call fcn.1800072c8
mov esi, eax
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x50], al
test r14b, r14b
je 0x18002f1e8
movaps xmm10, xmm15
movss dword [rbp - 0x40], xmm15
jmp 0x18002f1f1
movss xmm10, dword [0x180086080]
movss xmm5, dword [rbp - 0x60]
addss xmm5, xmm6
subss xmm5, xmm9
movss xmm6, dword [rbp - 0x5c]
addss xmm6, xmm7
subss xmm6, xmm15
mov qword [rbp + 0x138], r10
cmp r10, rbx
jae 0x18002f3c2
movss xmm1, dword [r13 + 0x1980]
movss xmm3, dword [rbp - 0x4c]
movss xmm4, dword [rbp - 0x54]
movss xmm11, dword [rbp - 0x40]
mov r14, qword [rbp - 0x80]
xor edi, edi
lea r15d, [rdi + 1]
movaps xmm0, xmm3
addss xmm0, xmm1
comiss xmm6, xmm0
ja 0x18002f3a9
comiss xmm4, xmm6
jbe 0x18002f285
cmp r10, rbx
jae 0x18002f389
mov ecx, 0xa
movzx eax, word [r10]
add r10, 2
mov qword [rbp + 0x138], r10
cmp ax, cx
je 0x18002f389
cmp r10, rbx
jb 0x18002f263
jmp 0x18002f389
mov byte [rsp + 0x28], r15b
lea r9, [rbp + 0x138]
mov r8, rbx
mov rdx, r10
lea rcx, [rbp + 0x160]
call fcn.18002b7cc
movss xmm1, dword [rbp + 0x160]
comiss xmm15, xmm1
jb 0x18002f2eb
mov rax, qword [r13 + 0x1978]
cmp dword [rax], 0x20
jle 0x18002f2cb
mov rax, qword [rax + 8]
movss xmm0, dword [rax + 0x80]
jmp 0x18002f2d0
movss xmm0, dword [rax + 0x10]
mulss xmm0, dword [0x18008601c]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x160], xmm1
addss xmm1, xmm5
movaps xmm0, xmm10
addss xmm0, xmm6
addss xmm5, xmm15
movaps xmm2, xmm11
subss xmm2, dword [r13 + 0x1980]
addss xmm2, xmm6
maxss xmm5, dword [rbp - 0x58]
movss xmm4, dword [rbp - 0x54]
maxss xmm2, xmm4
movss dword [rbp - 0x78], xmm5
movss dword [rbp - 0x74], xmm2
movss xmm7, dword [rbp - 0x50]
minss xmm1, xmm7
movss xmm3, dword [rbp - 0x4c]
minss xmm0, xmm3
movss dword [rbp - 0x70], xmm1
movss dword [rbp - 0x6c], xmm0
comiss xmm0, xmm4
jbe 0x18002f382
comiss xmm3, xmm2
jbe 0x18002f382
comiss xmm1, dword [rbp - 0x58]
jbe 0x18002f382
comiss xmm7, xmm5
jbe 0x18002f382
mov dword [rsp + 0x28], edi
movss dword [rsp + 0x20], xmm15
mov r9d, esi
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x78]
mov rcx, qword [r14 + 0x2b0]
call fcn.18001f38c
movss xmm3, dword [rbp - 0x4c]
movss xmm4, dword [rbp - 0x54]
mov r10, qword [rbp + 0x138]
movss xmm5, dword [rbp - 0x60]
subss xmm5, xmm9
movss xmm1, dword [r13 + 0x1980]
addss xmm6, xmm1
cmp r10, rbx
jb 0x18002f240
movss xmm11, dword [0x18008605c]
mov r15, qword [rbp - 0x28]
mov rdi, qword [rbp + 0x28]
mov r14d, dword [rsp + 0x5c]
xor r11d, r11d
mov sil, byte [rbp + 0x168]
mov r8, qword [rbp + 0x140]
test r14b, r14b
jne 0x18002f3e7
mov rax, rdi
sub rax, r8
cmp rax, 0x200000
jge 0x18002f467
movaps xmm1, xmm11
xor ecx, ecx
call fcn.1800072c8
movss xmm5, dword [rbp - 0x60]
subss xmm5, xmm9
movss dword [rbp + 0x138], xmm5
movss xmm0, dword [rbp - 0x5c]
subss xmm0, xmm15
movss dword [rbp + 0x13c], xmm0
lea rcx, [rbp - 0x58]
test r14b, r14b
cmovne rcx, r11
mov qword [rsp + 0x40], rcx
movss dword [rsp + 0x38], xmm15
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x138]
movss xmm2, dword [r13 + 0x1980]
mov rdx, qword [r13 + 0x1978]
mov rbx, qword [rbp - 0x80]
mov rcx, qword [rbx + 0x2b0]
call fcn.18001f938
xor r11d, r11d
jmp 0x18002f46b
mov rbx, qword [rbp - 0x80]
test sil, sil
je 0x18002f5d0
movss xmm0, dword [r13 + 0x18]
addss xmm0, dword [r15 + 0xe78]
movss dword [r15 + 0xe78], xmm0
cmp byte [r13 + 0xca], r11b
je 0x18002f4bd
comiss xmm15, xmm0
jae 0x18002f4bd
movss xmm1, dword [0x180086064]
call fcn.18006d460
movss xmm1, dword [0x180086044]
xor r11d, r11d
comiss xmm1, xmm0
jae 0x18002f4bd
mov cl, r11b
jmp 0x18002f4c2
mov ecx, 1
movss xmm0, dword [rbp - 0x60]
addss xmm0, xmm12
subss xmm0, xmm9
cvttss2si eax, xmm0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movss xmm0, dword [rbp - 0x5c]
addss xmm0, xmm13
subss xmm0, xmm15
cvttss2si eax, xmm0
movd xmm7, eax
cvtdq2ps xmm7, xmm7
movss dword [rbp - 0x78], xmm6
movaps xmm1, xmm7
subss xmm1, dword [r13 + 0x1980]
addss xmm1, dword [0x18008601c]
movss dword [rbp - 0x74], xmm1
movaps xmm2, xmm6
addss xmm2, xmm11
movss dword [rbp - 0x70], xmm2
movaps xmm5, xmm7
subss xmm5, dword [0x180086074]
movss dword [rbp - 0x6c], xmm5
test cl, cl
je 0x18002f594
comiss xmm5, dword [rbp - 0x54]
jbe 0x18002f594
movss xmm0, dword [rbp - 0x4c]
comiss xmm0, xmm1
jbe 0x18002f594
comiss xmm2, dword [rbp - 0x58]
jbe 0x18002f594
movss xmm0, dword [rbp - 0x50]
comiss xmm0, xmm6
jbe 0x18002f594
movaps xmm1, xmm11
xor ecx, ecx
call fcn.1800072c8
movss dword [rbp + 0x138], xmm6
movss dword [rbp + 0x13c], xmm5
movss dword [rsp + 0x20], xmm11
mov r9d, eax
lea r8, [rbp + 0x138]
lea rdx, [rbp - 0x78]
mov rcx, qword [rbx + 0x2b0]
call fcn.18001f1cc
xor r11d, r11d
movss xmm12, dword [rbp - 0x68]
movss xmm13, dword [rbp - 0x30]
mov rbx, qword [rbp + 0x140]
cmp byte [rsp + 0x54], r11b
jne 0x18002f5e3
subss xmm6, xmm11
subss xmm7, dword [r13 + 0x1980]
movss dword [r13 + 0x3020], xmm6
movss dword [r13 + 0x3024], xmm7
jmp 0x18002f5e3
movss xmm12, dword [rbp - 0x68]
movss xmm13, dword [rbp - 0x30]
mov rbx, qword [rbp + 0x140]
mov esi, dword [rsp + 0x78]
test sil, sil
je 0x18002f5f4
call fcn.1800100d8
xor r11d, r11d
test r14b, r14b
je 0x18002f62d
movss dword [rbp + 0x138], xmm14
addss xmm8, dword [r13 + 0x159c]
movss dword [rbp + 0x13c], xmm8
lea rcx, [rbp + 0x138]
call fcn.18002954c
call fcn.18000bc70
call fcn.180010e00
xor r11d, r11d
cmp byte [r13 + 0x308c], r11b
je 0x18002f65d
test sil, sil
jne 0x18002f65d
lea rdx, [0x180084970]
lea rcx, [0x180084998]
call fcn.1800156e0
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.18001552c
comiss xmm13, xmm15
jbe 0x18002f698
movss xmm0, dword [rbp - 0x48]
addss xmm0, dword [r13 + 0x15b0]
addss xmm12, dword [r13 + 0x159c]
mov r9d, 1
xor r8d, r8d
mov rdx, qword [rbp + 0x130]
unpcklps xmm0, xmm12
movq rcx, xmm0
call fcn.180007624
movzx ecx, byte [rsp + 0x65]
mov r8d, dword [rbp + 0x158]
test cl, cl
je 0x18002f6b4
bt r8d, 0x1b
jb 0x18002f6b4
call fcn.180008ac0
test r8b, 0x20
mov eax, ecx
movzx ecx, byte [rsp + 0x50]
cmovne eax, ecx
jmp 0x18002d544