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

Disassembly:
mov rax, rsp
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x60
mov qword [rax + 8], rsi
mov rbx, rdx
mov qword [rax + 0x10], r14
lea rdx, sym.MZ_g:5PY9A_AdbddjqMC_itwelIef_ss_EUm_D_UyvLpzA_
mov qword [rax + 0x20], r15
mov rdi, rcx
movaps xmmword [rax - 0x28], xmm6
nop word [rax + rax]
cmp r8d, 0x30000
jg 0x18002f67d
je 0x18002f8f0
lea eax, [r8 - 0x10000]
cmp eax, 0xd
ja case.0x18002f699.196618
cdqe
mov ecx, dword [rdx + rax*4 + 0x2fef4]
add rcx, rdx
jmp rcx
lea eax, [r8 - 0x30001]
cmp eax, 0xc
ja case.0x18002f699.196618
cdqe
mov ecx, dword [rdx + rax*4 + 0x2ff2c]
add rcx, rdx
jmp rcx
mov r14d, r8d
shr r14d, 0x11
and r14d, 1
cmp byte [rbx + 0x10], 0
je 0x18002f929
and r8d, 0x20000
or r8d, 0x10001
jmp 0x18002f650
mov r14d, r8d
shr r14d, 0x11
and r14d, 1
cmp byte [rbx + 0x10], 0
je 0x18002fa76
and r8d, 0x20000
bts r8d, 0x10
jmp 0x18002f650
mov rdx, rbx
mov rcx, rdi
call fcn.180030250
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov rdx, rbx
mov rcx, rdi
call fcn.180030430
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
cmp eax, ecx
je 0x18002f737
cmp ecx, eax
jge 0x18002f722
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov byte [rbx + 0xf], 0
mov dword [rbx + 8], eax
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx]
test eax, eax
jle 0x18002f741
dec eax
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
je 0x18002f76e
mov rdx, rbx
mov rcx, rdi
call fcn.18002f4f0
mov rcx, rdi
call fcn.18002f3a0
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
inc dword [rbx]
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
cmp eax, ecx
je 0x18002f7a9
cmp ecx, eax
jge 0x18002f798
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov dword [rbx], eax
mov dword [rbx + 8], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov edx, dword [rbx]
mov rcx, rdi
dec edx
call fcn.18002edb0
mov rdx, rbx
mov dword [rbx], eax
mov rcx, rdi
call fcn.18002f3a0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
mov rcx, rdi
cmp dword [rbx + 4], eax
je 0x18002f7df
mov rdx, rbx
call fcn.18002f4f0
jmp 0x18002fecf
mov edx, dword [rbx]
inc edx
call fcn.18002ee30
mov rdx, rbx
mov dword [rbx], eax
mov rcx, rdi
call fcn.18002f3a0
jmp 0x18002fecf
xor esi, esi
mov qword [rbx + 4], rsi
mov dword [rbx], esi
jmp 0x18002fecb
mov eax, dword [rdi + 0x3c]
xor esi, esi
mov qword [rbx + 4], rsi
mov dword [rbx], eax
jmp 0x18002fecb
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
mov edx, dword [rdi + 0x3c]
cmp eax, ecx
je 0x18002f83e
cmp eax, edx
jle 0x18002f82b
mov dword [rbx + 4], edx
cmp ecx, edx
jle 0x18002f832
mov dword [rbx + 8], edx
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
cmp eax, ecx
jne 0x18002f83e
mov dword [rbx], eax
cmp dword [rbx], edx
jle 0x18002f844
mov dword [rbx], edx
cmp eax, ecx
je 0x18002f85e
cmp ecx, eax
jge 0x18002f852
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov dword [rbx], eax
mov dword [rbx + 8], eax
mov byte [rbx + 0xf], 0
movzx r9d, byte [rbx + 0x10]
lea rcx, [rbp - 0x28]
mov r8d, dword [rbx]
mov rdx, rdi
call fcn.18002f1d0
mov eax, dword [rbp - 0x1c]
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
cmp eax, ecx
je 0x18002f8ab
cmp ecx, eax
jge 0x18002f89f
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov dword [rbx], eax
mov dword [rbx + 8], eax
mov byte [rbx + 0xf], 0
movzx r9d, byte [rbx + 0x10]
lea rcx, [rbp - 0x40]
mov r8d, dword [rbx]
mov rdx, rdi
call fcn.18002f1d0
mov ecx, dword [rbp - 0x30]
mov edx, dword [rbp - 0x34]
add edx, ecx
mov byte [rbx + 0xf], 0
mov dword [rbx], edx
test ecx, ecx
jle 0x18002fecf
mov rax, qword [rdi + 0x10]
dec edx
movsxd rcx, edx
cmp word [rax + rcx*2], 0xa
jne 0x18002fecf
mov dword [rbx], edx
jmp 0x18002fecf
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002f90d
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
jmp 0x18002f90f
mov dword [rbx], eax
mov eax, dword [rbx + 8]
test eax, eax
jle 0x18002f91b
dec eax
mov dword [rbx + 8], eax
mov eax, dword [rbx + 8]
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
test r14d, r14d
je 0x18002f944
cmp dword [rbx + 4], eax
jne 0x18002f940
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
jmp 0x18002f954
mov dword [rbx], eax
jmp 0x18002f954
cmp dword [rbx + 4], eax
je 0x18002f954
mov rdx, rbx
mov rcx, rdi
call fcn.18002f4f0
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov r8d, dword [rbx]
lea rcx, [rbp - 0x40]
movzx r9d, byte [rbx + 0x10]
mov rdx, rdi
call fcn.18002f1d0
mov ecx, dword [rbp - 0x30]
test ecx, ecx
je 0x18002fecf
cmp byte [rbx + 0xf], 0
je 0x18002f98b
movss xmm6, dword [rbx + 0x14]
jmp 0x18002f990
movss xmm6, dword [rbp - 0x40]
mov r15d, dword [rbp - 0x34]
mov rdx, rdi
add r15d, ecx
lea rcx, [rbp - 0x28]
mov r8d, r15d
mov dword [rbx], r15d
call fcn.18002ecd0
mov r10d, dword [rbp - 0x14]
xor esi, esi
movss xmm2, dword [rbp - 0x28]
test r10d, r10d
jle 0x18002fa2f
mov r9, qword [0x1801b0270]
movss xmm3, dword [0x1801a04e0]
movsxd rax, r15d
lea r8, [rax + rax]
nop
mov rax, qword [rdi + 0x10]
movzx ecx, word [r8 + rax]
cmp cx, 0xa
je 0x18002fa2f
mov rdx, qword [r9 + 0x1718]
movzx eax, cx
cmp eax, dword [rdx + 0x20]
jge 0x18002f9fc
mov rax, qword [rdx + 0x28]
movzx ecx, cx
movss xmm1, dword [rax + rcx*4]
jmp 0x18002fa01
movss xmm1, dword [rdx + 0x48]
movss xmm0, dword [r9 + 0x1720]
divss xmm0, dword [rdx]
mulss xmm0, xmm1
ucomiss xmm0, xmm3
jp 0x18002fa19
je 0x18002fa2f
addss xmm2, xmm0
comiss xmm2, xmm6
ja 0x18002fa2f
inc dword [rbx]
inc esi
add r8, 2
cmp esi, r10d
jl 0x18002f9d0
mov ecx, dword [rbx + 4]
mov edx, dword [rbx + 8]
mov eax, dword [rdi + 0x3c]
cmp ecx, edx
je 0x18002fa54
cmp ecx, eax
jle 0x18002fa43
mov dword [rbx + 4], eax
cmp edx, eax
jle 0x18002fa4a
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 4]
cmp ecx, dword [rbx + 8]
jne 0x18002fa54
mov dword [rbx], ecx
cmp dword [rbx], eax
jle 0x18002fa5a
mov dword [rbx], eax
movss dword [rbx + 0x14], xmm6
mov byte [rbx + 0xf], 1
test r14d, r14d
je 0x18002fecf
mov eax, dword [rbx]
mov dword [rbx + 8], eax
jmp 0x18002fecf
test r14d, r14d
je 0x18002fa8e
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fa8a
mov eax, dword [rbx]
mov dword [rbx + 4], eax
jmp 0x18002faab
mov dword [rbx], eax
jmp 0x18002faae
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 8]
cmp eax, ecx
je 0x18002faae
cmp ecx, eax
jge 0x18002faa2
mov dword [rbx + 8], eax
mov dword [rbx + 4], ecx
mov eax, dword [rbx + 4]
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
mov dword [rbx + 8], eax
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov r8d, dword [rbx]
lea rcx, [rbp - 0x40]
movzx r9d, byte [rbx + 0x10]
mov rdx, rdi
call fcn.18002f1d0
mov r15d, dword [rbp - 0x2c]
cmp r15d, dword [rbp - 0x34]
je 0x18002fecf
cmp byte [rbx + 0xf], 0
je 0x18002fae8
movss xmm6, dword [rbx + 0x14]
jmp 0x18002faed
movss xmm6, dword [rbp - 0x40]
mov r8d, r15d
mov dword [rbx], r15d
mov rdx, rdi
lea rcx, [rbp - 0x28]
call fcn.18002ecd0
mov r10d, dword [rbp - 0x14]
xor esi, esi
movss xmm2, dword [rbp - 0x28]
test r10d, r10d
jle 0x18002fb95
mov r9, qword [0x1801b0270]
movss xmm3, dword [0x1801a04e0]
nop dword [rax]
nop word [rax + rax]
lea eax, [rsi + r15]
movsxd rcx, eax
mov rax, qword [rdi + 0x10]
movzx r8d, word [rax + rcx*2]
cmp r8w, 0xa
je 0x18002fb95
mov rdx, qword [r9 + 0x1718]
movzx eax, r8w
cmp eax, dword [rdx + 0x20]
jge 0x18002fb66
mov rax, qword [rdx + 0x28]
movzx ecx, r8w
movss xmm1, dword [rax + rcx*4]
jmp 0x18002fb6b
movss xmm1, dword [rdx + 0x48]
movss xmm0, dword [r9 + 0x1720]
divss xmm0, dword [rdx]
mulss xmm0, xmm1
ucomiss xmm0, xmm3
jp 0x18002fb83
je 0x18002fb95
addss xmm2, xmm0
comiss xmm2, xmm6
ja 0x18002fb95
inc dword [rbx]
inc esi
cmp esi, r10d
jl 0x18002fb30
mov ecx, dword [rbx + 4]
mov edx, dword [rbx + 8]
mov eax, dword [rdi + 0x3c]
cmp ecx, edx
je 0x18002fbba
cmp ecx, eax
jle 0x18002fba9
mov dword [rbx + 4], eax
cmp edx, eax
jle 0x18002fbb0
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 4]
cmp ecx, dword [rbx + 8]
jne 0x18002fbba
mov dword [rbx], ecx
cmp dword [rbx], eax
jle 0x18002fbc0
mov dword [rbx], eax
movss dword [rbx + 0x14], xmm6
mov byte [rbx + 0xf], 1
test r14d, r14d
je 0x18002fecf
mov eax, dword [rbx]
mov dword [rbx + 8], eax
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fbec
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
mov edx, dword [rbx]
mov rcx, rdi
dec edx
call fcn.18002edb0
mov rdx, rbx
mov dword [rbx], eax
mov rcx, rdi
mov dword [rbx + 8], eax
call fcn.18002f3a0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fc1d
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
mov edx, dword [rbx]
mov rcx, rdi
inc edx
call fcn.18002ee30
jmp 0x18002fbf8
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fc3d
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
jmp 0x18002fc3f
mov dword [rbx], eax
inc dword [rbx + 8]
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov edx, dword [rbx + 8]
mov dword [rbx], edx
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
je 0x18002fc77
mov rdx, rbx
mov rcx, rdi
call fcn.18002f460
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov r8d, dword [rbx]
cmp r8d, dword [rdi + 0x3c]
jge 0x18002f741
mov r9d, 1
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3d0
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
je 0x18002fcba
mov rdx, rbx
mov rcx, rdi
call fcn.18002f460
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rdi + 0x3c]
cmp dword [rbx], eax
jle 0x18002fcc3
mov dword [rbx], eax
mov r8d, dword [rbx]
test r8d, r8d
jle 0x18002fce1
dec r8d
mov r9d, 1
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3d0
dec dword [rbx]
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fd06
mov eax, dword [rbx]
xor esi, esi
mov dword [rbx + 8], eax
mov dword [rbx + 8], esi
mov dword [rbx], esi
mov dword [rbx + 4], eax
jmp 0x18002fecb
xor esi, esi
mov dword [rbx], eax
mov dword [rbx + 8], esi
mov dword [rbx], esi
jmp 0x18002fecb
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fd35
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
mov eax, dword [rdi + 0x3c]
mov dword [rbx + 8], eax
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov dword [rbx], eax
mov eax, dword [rdi + 0x3c]
mov dword [rbx + 8], eax
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fd65
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
jmp 0x18002fd67
mov dword [rbx], eax
movzx r9d, byte [rbx + 0x10]
lea rcx, [rbp - 0x28]
mov r8d, dword [rbx]
mov rdx, rdi
call fcn.18002f1d0
mov eax, dword [rbp - 0x1c]
mov dword [rbx + 8], eax
mov dword [rbx], eax
mov byte [rbx + 0xf], 0
jmp 0x18002fecf
mov rdx, rbx
mov rcx, rdi
call fcn.18002f3a0
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fda9
mov eax, dword [rbx]
mov dword [rbx + 8], eax
mov dword [rbx + 4], eax
jmp 0x18002fdab
mov dword [rbx], eax
movzx r9d, byte [rbx + 0x10]
lea rcx, [rbp - 0x28]
mov r8d, dword [rbx]
mov rdx, rdi
call fcn.18002f1d0
mov ecx, dword [rbp - 0x18]
mov r8d, dword [rbp - 0x1c]
add r8d, ecx
mov byte [rbx + 0xf], 0
mov dword [rbx], r8d
test ecx, ecx
jle 0x18002fdeb
mov rax, qword [rdi + 0x10]
lea edx, [r8 - 1]
movsxd rcx, edx
cmp word [rax + rcx*2], 0xa
cmove r8d, edx
mov dword [rbx], r8d
mov eax, dword [rbx]
mov dword [rbx + 8], eax
jmp 0x18002fecf
xor esi, esi
cmp r8d, 0x10000
cmovge r8d, esi
test r8d, r8d
jle 0x18002fecf
mov word [rbp + 0x30], r8w
cmp r8d, 0xa
jne 0x18002fe20
cmp byte [rbx + 0x10], sil
jne 0x18002fecf
cmp byte [rbx + 0xc], sil
je 0x18002fe84
mov eax, dword [rbx + 8]
cmp dword [rbx + 4], eax
jne 0x18002fe84
movsxd r15, dword [rbx]
cmp r15d, dword [rdi + 0x3c]
jge 0x18002fe84
mov r14d, 1
lea rcx, [rbx + 0x18]
mov r9d, r14d
mov r8d, r14d
mov edx, r15d
call fcn.1800301d0
test rax, rax
je 0x18002fe60
mov rcx, qword [rdi + 0x10]
movzx edx, word [rcx + r15*2]
mov word [rax], dx
mov edx, dword [rbx]
mov r8d, r14d
mov rcx, rdi
call fcn.18002eee0
mov edx, dword [rbx]
lea r8, [rbp + 0x30]
mov r9d, r14d
mov rcx, rdi
call fcn.18002ef60
test al, al
je 0x18002fecf
jmp 0x18002fec9
mov rdx, rbx
mov rcx, rdi
call fcn.18002f460
mov edx, dword [rbx]
lea r8, [rbp + 0x30]
mov r9d, 1
mov rcx, rdi
call fcn.18002ef60
test al, al
je 0x18002fecf
mov edi, dword [rbx]
lea rcx, [rbx + 0x18]
xor edx, edx
call fcn.180030120
test rax, rax
je 0x18002fec9
or ecx, 0xffffffff
mov dword [rax], edi
mov word [rax + 8], cx
mov dword [rax + 4], 0x10000
inc dword [rbx]
mov byte [rbx + 0xf], sil
movaps xmm6, xmmword [rsp + 0x50]
mov r15, qword [rsp + 0x98]
mov r14, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
pop rbx
pop rbp
ret