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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov dword [rax + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov r11, qword [rsp + 0x50]
mov r12, rdx
movaps xmmword [rax - 0x58], xmm6
lea edx, [rcx + 0x72]
movaps xmmword [rax - 0x68], xmm7
mov r10, r9
mov r9, qword [rsp + 0x50]
mov rbx, r8
movaps xmmword [rax - 0x78], xmm8
mov edi, ecx
movaps xmmword [rax - 0x88], xmm9
mov r8d, ecx
movaps xmmword [rax - 0x98], xmm10
mov eax, dword [rsp + 0x140]
movss xmm10, dword [rsp + 0x140]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x48], r9
cmp ecx, edx
jae 0x180088b69
mov r13, qword [rsp + 0x168]
lea edx, [rcx - 0x44]
mov ecx, dword [rsp + 0x140]
mov ebp, dword [rsp + 0x140]
mov r15d, dword [rsp + 0x140]
mov r14d, dword [rsp + 0x140]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x170]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x140]
mov byte [rsp + 0x28], al
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x3c], edx
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x5c], ecx
jmp 0x180088635
mov r11, qword [rsp + 0x70]
cmp edx, 0xe6
ja case.default.0x180088661
lea rcx, [0x180000000]
movzx eax, byte [rcx + rdx + 0x8906c]
mov ecx, dword [rcx + rax*4 + 0x8901c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
xorps xmm0, xmm0
lea rcx, [r11 + 0x8c]
movups xmmword [r11], xmm0
xor eax, eax
xor edx, edx
movups xmmword [r11 + 0x10], xmm0
mov r8d, 0xc4
movups xmmword [r11 + 0x20], xmm0
movups xmmword [r11 + 0x30], xmm0
movups xmmword [r11 + 0x40], xmm0
movups xmmword [r11 + 0x50], xmm0
movups xmmword [r11 + 0x60], xmm0
movups xmmword [r11 + 0x70], xmm0
mov qword [r11 + 0x80], rax
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x70]
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
mov dword [rax + 0x88], 0xffffffff
jmp case.0x180088661.1
cvttss2si eax, dword [rbx]
mov dword [rsp + 0x40], eax
jmp case.0x180088661.1
mov eax, dword [rsp + 0x24]
xor r11d, r11d
mov qword [rsp + 0x30], r11
jmp 0x180088b25
mov eax, dword [rsp + 0x88]
dec eax
mov dword [rsp + 0x60], eax
jmp case.0x180088661.1
mov ebp, dword [rbx]
mov r15d, 1
add ebp, 0x39
jmp case.0x180088661.1
mov ecx, dword [0x1801d6100]
add ecx, ebp
cmp ecx, dword [0x1801d6104]
jg case.0x180088661.1
xor esi, esi
cmp esi, 0xb
ja case.default.0x18008873c
lea rdx, [0x180000000]
mov ecx, dword [rdx + rsi*4 + 0x89154]
add rcx, rdx
jmp rcx
mov r14d, dword [rdi]
and r14d, 0x3ff
jmp case.default.0x18008873c
movsxd rcx, ebp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
jmp case.default.0x18008873c
mov eax, dword [rbx]
lea rdx, [rsp + 0x80]
mov r9d, 0xc
mov dword [rsp + 0x80], eax
xor r8d, r8d
mov rcx, r10
call fcn.18002fce0
mov dword [rdi], eax
lea rax, [rdi + 0x38]
mov qword [rdi + 8], rax
jmp case.default.0x18008873c
test r15d, r15d
je 0x1800887ae
mov rax, qword [rdi + 8]
mov qword [rdi + 0x10], rax
mov rax, qword [rsp + 0x170]
mov eax, dword [rax]
mov dword [rdi + 0x2c], eax
jmp case.default.0x18008873c
mov r13, qword [rsp + 0x150]
mov ebx, 0xad
mov r12, qword [rsp + 0x170]
cmp ebx, 0xad
jne 0x1800887f2
mov eax, dword [r13]
mov rdx, qword [rsp + 0x160]
inc eax
movsxd rcx, eax
add rcx, qword [rdi + 8]
mov qword [rdi + 0x10], rcx
mov eax, dword [r12]
inc eax
movsxd r8, eax
call sub.VCRUNTIME140.dll_memcpy
add ebx, 0x6a
cmp ebx, 0x117
jb 0x1800887c3
mov rax, qword [rsp + 0x170]
mov r12, qword [rsp + 0x148]
mov r13, qword [rsp + 0x168]
mov rbx, qword [rsp + 0x150]
mov eax, dword [rax]
mov dword [rdi + 0x2c], eax
jmp case.default.0x18008873c
mov byte [rdi + 0x36], 0
jmp case.default.0x18008873c
mov byte [rdi + 0x35], 0
jmp case.default.0x18008873c
add dword [0x1801d6100], ebp
jmp case.default.0x18008873c
mov eax, dword [r12]
mov dword [rdi + 0x30], eax
mov byte [rdi + 0x34], 0
jmp case.default.0x18008873c
mov ecx, r14d
mov rax, qword [rdx + rcx*8 + 0x1d6110]
mov qword [rdi + 0x18], rax
mov qword [rdx + rcx*8 + 0x1d6110], rdi
jmp case.default.0x18008873c
mov eax, dword [rbx]
mov rdx, r10
mov rcx, qword [rdi + 8]
inc eax
movsxd r8, eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rbx]
mov dword [rdi + 0x28], eax
jmp case.default.0x18008873c
mov byte [rdi + 0x37], 0
movsxd rax, dword [0x1801d6108]
add rax, qword [r13]
mov qword [rdi + 0x20], rax
jmp case.default.0x18008873c
test rdi, rdi
je case.0x180088661.230
mov r10, qword [rsp + 0x158]
inc esi
lea eax, [rsi + 0x9d]
cmp eax, 0xa9
jb 0x180088722
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x170]
jmp case.0x180088661.1
movzx eax, byte [r9 + r10]
mov byte [rsp + 0x28], al
jmp case.0x180088661.1
cmp byte [0x180183d71], 0
jne 0x180088931
mov ebx, 0x75
nop dword [rax + rax]
mov eax, ebx
sub eax, 0x73
je case.0x180088661.230
sub eax, 1
je 0x180088913
cmp eax, 1
jne 0x18008891c
xor edx, edx
mov ecx, 0x10001
call fcn.180025af0
jmp 0x18008891c
mov qword [rsp + 0x68], 0
dec ebx
cmp ebx, 0x72
ja 0x1800888f0
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
jmp case.0x180088661.1
mov eax, dword [r10 + 0x10]
mov dword [rsp + 0x88], eax
jmp case.0x180088661.1
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x90], 0x150
mov ecx, 0x123
call fcn.18001bc40
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0x70], rax
jmp case.0x180088661.1
cmp qword [rbx], 3
jae 0x1800889b5
mov ecx, 0x17
mov eax, ecx
sub eax, 0x17
je 0x1800889a6
cmp eax, 1
je case.0x180088661.230
jmp 0x1800889ae
mov dword [rsp + 0x68], 0
inc ecx
cmp ecx, 0x19
jb 0x180088994
cmp byte [r10], 0x20
jne case.0x180088661.1
mov ecx, 0x129
mov eax, ecx
sub eax, 0x129
je 0x1800889e3
cmp eax, 1
jne 0x1800889e6
cmp byte [r10 + 1], 0x20
jne 0x1800889e6
inc r9
cmp byte [r10 + 2], 0x20
jne 0x1800889e6
inc r9
inc ecx
cmp ecx, 0x12b
jb 0x1800889c4
mov qword [rsp + 0x48], r9
jmp case.0x180088661.1
xor r9d, r9d
mov qword [rsp + 0x48], r9
jmp case.0x180088661.1
mov ecx, dword [rsp + 0x58]
mov eax, dword [r10 + 0x14]
dec ecx
mov dword [rsp + 0x5c], ecx
mov dword [rsp + 0x44], eax
jmp case.0x180088661.1
mov rax, qword [rsp + 0x160]
movd xmm0, dword [rsp + 0x40]
movss xmm10, dword [rbx]
mov r11, qword [rsp + 0x30]
cvttss2si ecx, dword [rax]
mov eax, dword [rsp + 0x24]
cvtdq2ps xmm0, xmm0
mov dword [rsp + 0x20], ecx
subss xmm10, xmm0
jmp 0x180088b29
mov rax, qword [r10]
mov qword [rsp + 0x78], rax
mov eax, dword [r10 + 0xc]
mov dword [rsp + 0x58], eax
jmp case.0x180088661.1
movsxd rax, dword [rbx]
mov ebx, dword [rsi]
cmp ebx, eax
jne 0x180088a96
mov rdx, qword [rsp + 0x160]
mov r8, rax
mov rcx, r10
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x48]
test eax, eax
je case.0x180088661.1
mov eax, 0x11a
nop dword [rax + rax]
cmp eax, 0x11a
je 0x180088ab3
cmp eax, 0xd14c
jne 0x180088ab7
xor r15d, r15d
jmp 0x180088ab7
inc ebp
add ebp, ebx
add eax, 0xd032
cmp eax, 0x1a064
jbe 0x180088aa0
jmp case.0x180088661.1
lea rax, [r9 + 2]
cmp rax, qword [rbx]
jae 0x180088ae9
movzx eax, byte [r9 + r10]
sub al, 0x2a
cmp al, 0x35
ja 0x180088ae9
movabs rcx, 0x20000000000009
bt rcx, rax
jb case.0x180088661.1
mov ecx, 0x7a
nop
mov eax, ecx
sub eax, 0x7a
je 0x180088b02
cmp eax, 0x60
je case.0x180088661.230
jmp 0x180088b0a
mov dword [rsp + 0x68], 0
add ecx, 0x60
cmp ecx, 0x13a
jb 0x180088af0
jmp case.0x180088661.1
mov qword [rsp + 0x50], r10
mov eax, dword [rsp + 0x24]
mov r11, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
mov r10, qword [rsp + 0x158]
add r8d, 6
mov rbx, qword [rsp + 0x150]
add edx, 6
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x3c], edx
cmp r8d, eax
jb 0x180088630
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x44]
mov edi, dword [rsp + 0x140]
jmp 0x180088bcb
mov ecx, dword [rsp + 0x140]
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x140]
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x140]
mov dword [rsp + 0x58], ecx
mov ecx, dword [rsp + 0x140]
mov byte [rsp + 0x28], al
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x5c], ecx
mov ecx, dword [rsp + 0x140]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x20], ecx
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0x40], r8d
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x78], rbx
imul r14d, edi, 0x6c1
mov ebx, edi
cmp edi, r14d
ja case.0x180088661.230
mov edi, dword [rsp + 0x140]
xorps xmm9, xmm9
mov esi, dword [rsp + 0x140]
mov r15, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x50]
mov r12, qword [rsp + 0x50]
movss xmm8, dword [rsp + 0x140]
movss xmm6, dword [rsp + 0x140]
mov r13, qword [rsp + 0x50]
movss xmm7, dword [rsp + 0x140]
nop
cmp ebx, 0x9f7a
ja 0x180088de3
je 0x180088c9d
cmp ebx, 0x3530
ja 0x180088d4b
je 0x180088d3d
mov eax, ebx
sub eax, 0x44
je 0x180088ce5
sub eax, 0x50
je 0x180088cd2
sub eax, 1
je 0x180088ca6
cmp eax, 0x17db
jne 0x180088e7f
mov ecx, 0xe5
nop dword [rax]
mov eax, ecx
sub eax, 0xe4
je case.0x180088661.230
cmp eax, 1
jne 0x180088c8f
xor eax, eax
cmp r11, 3
setae al
mov dword [rsp + 0x68], eax
dec ecx
cmp ecx, 0xe3
ja 0x180088c70
mov ecx, dword [rsp + 0x20]
lea edi, [r8 + 1]
jmp 0x180088e7f
comiss xmm10, xmm9
mov rax, qword [rsp + 0x160]
movss xmm8, dword [rax]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
subss xmm8, xmm0
ja 0x180088e7f
movaps xmm10, xmm9
jmp 0x180088e7f
xor r10d, r10d
mov dword [rdx + 0x78], r10d
mov dword [rdx + 0x98], r10d
jmp 0x180088e7f
mov rax, qword [rsp + 0x150]
mov rcx, qword [rax]
cmp r9, rcx
jae 0x180088e7b
movzx edx, byte [rsp + 0x28]
nop
cmp byte [r9 + r10], 0xa
je 0x180088e7b
movzx eax, byte [r9 + r10]
cmp al, dl
jne 0x180088d1e
inc r11
mov qword [rsp + 0x30], r11
jmp 0x180088d2b
mov qword [rsp + 0x30], r11
cmp al, 0x20
jne 0x180088fe0
inc r9
mov qword [rsp + 0x48], r9
cmp r9, rcx
jb 0x180088d00
jmp 0x180088e7b
xor eax, eax
mov qword [rdx + 0xa0], rax
jmp 0x180088e7f
cmp ebx, 0x358c
je 0x180088dd0
cmp ebx, 0x69cc
je 0x180088dc3
cmp ebx, 0x6a83
je 0x180088d7b
cmp ebx, 0x9e68
jne 0x180088e7f
mov qword [rdx + 0xf0], rdx
jmp 0x180088e7f
mov r10d, dword [rsp + 0x5c]
cmp r8d, r10d
jle 0x180088d8f
mov dword [rsp + 0x40], r10d
xor r10d, r10d
jmp 0x180088da1
test r8d, r8d
mov r10d, 0
cmovs r8d, r10d
mov dword [rsp + 0x40], r8d
mov edx, dword [rsp + 0x60]
cmp ecx, edx
jle 0x180088db4
mov ecx, edx
mov dword [rsp + 0x20], edx
jmp 0x180088e7f
test ecx, ecx
cmovs ecx, r10d
mov dword [rsp + 0x20], ecx
jmp 0x180088e7f
xor eax, eax
mov dword [rdx + 0xa8], eax
jmp 0x180088e7f
comiss xmm8, xmm9
ja 0x180088e7f
movaps xmm8, xmm9
jmp 0x180088e7f
cmp ebx, 0x13c3c
ja 0x180088ead
je 0x180088e3b
cmp ebx, 0xd304
je 0x180088e64
cmp ebx, 0xd471
je 0x180088e36
cmp ebx, 0x107a0
je 0x180088e29
cmp ebx, 0x10968
jne 0x180088e7f
mov eax, dword [rsp + 0x5c]
cmp edi, eax
cmovl eax, edi
mov edi, eax
mov eax, dword [rsp + 0x60]
cmp esi, eax
cmovl eax, esi
mov esi, eax
jmp 0x180088e7f
lea rax, [0x1801d8c40]
mov qword [rdx + 0x18], rax
jmp 0x180088e7f
lea esi, [rcx + 1]
jmp 0x180088e7f
mov ecx, 0xaa
mov eax, ecx
sub eax, 0xaa
je 0x180088e54
cmp eax, 0x7e
je case.0x180088661.230
jmp 0x180088e59
mov qword [rsp + 0x68], rdx
add ecx, 0x7e
cmp ecx, 0x1a6
jb 0x180088e40
mov r8, r10
mov ecx, 0x1c
call fcn.18003dfe0
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
imul eax, dword [rsp + 0x140], 0x5b
add ebx, eax
cmp ebx, r14d
ja case.0x180088661.230
mov r10, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x44]
jmp 0x180088c20
cmp ebx, 0x13e5f
je 0x180088fbe
cmp ebx, 0x17356
je 0x180088f8b
cmp ebx, 0x1a84d
je 0x180088f6d
cmp ebx, 0x1dd44
jne 0x180088e7f
test eax, eax
jle 0x180088e7f
mov rdx, qword [rsp + 0x170]
mov r8, r12
mov r9, r13
mov r11d, eax
sub rdx, rbp
sub r8, rbp
sub r9, rbp
mov r10, r15
sub r10, rbp
mov rcx, rbp
mov eax, 0x35
cmp eax, 0x35
je 0x180088f28
cmp eax, 0x14e9
jne 0x180088f52
movaps xmm0, xmm7
subss xmm0, xmm6
mulss xmm0, xmm10
addss xmm0, xmm6
movss dword [rdx + rcx], xmm0
jmp 0x180088f52
movss xmm6, dword [r8 + rcx]
subss xmm6, dword [rcx]
movss xmm7, dword [r10 + rcx]
subss xmm7, dword [r9 + rcx]
mulss xmm6, xmm8
mulss xmm7, xmm8
addss xmm6, dword [rcx]
addss xmm7, dword [r9 + rcx]
add eax, 0x14b4
cmp eax, 0x2968
jbe 0x180088f05
add rcx, 4
sub r11, 1
jne 0x180088f00
jmp 0x180088e71
mov rdx, qword [rsp + 0x78]
mov eax, esi
imul eax, dword [rsp + 0x58]
add eax, edi
imul eax, dword [rsp + 0x44]
cdqe
lea r15, [rdx + rax*4]
jmp 0x180088e7f
mov r12, qword [rsp + 0x78]
mov eax, ecx
imul eax, dword [rsp + 0x58]
add eax, edi
imul eax, dword [rsp + 0x44]
cdqe
lea r13, [r12 + rax*4]
mov eax, esi
imul eax, dword [rsp + 0x58]
add eax, r8d
imul eax, dword [rsp + 0x44]
cdqe
lea r12, [r12 + rax*4]
jmp 0x180088e7f
mov rdx, qword [rsp + 0x78]
mov eax, ecx
imul eax, dword [rsp + 0x58]
add eax, r8d
imul eax, dword [rsp + 0x44]
cdqe
lea rbp, [rdx + rax*4]
jmp 0x180088e7f
xor eax, eax
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x68]
lea r11, [rsp + 0xf8]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret