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

Disassembly:
push 0x64
mov eax, 0x10029cbd
call fcn.1002880f
mov ebx, ecx
mov eax, dword [ebx + 0x10]
xor edx, edx
fldz
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
lea eax, [ebx + 0x1c8]
fst qword [eax + 0x30]
fstp qword [eax + 0x38]
mov dword [eax], edx
mov dword [eax + 0x24], edx
mov dword [eax + 4], edx
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x50], 1
mov eax, dword [ebx + 0x10]
push esi
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], edi
call fcn.10016da7
test eax, eax
je 0x10059404
movzx eax, byte [ebx + 0x24]
mov ecx, 0xf6
cmp eax, ecx
jg 0x10059240
je 0x1005922a
sub eax, edx
je 0x1005921e
dec eax
je 0x1005908c
sub eax, 0xf1
je 0x10059069
dec eax
je 0x10058fe8
dec eax
je 0x10058f62
dec eax
jne 0x10059404
cmp dword [ebx + 0x1c0], esi
jne 0x10058f1d
cmp dword [ebx + 0x190], edx
je 0x10058e97
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
call fcn.10016da7
sub esp, 0xb8
mov esi, eax
push 0x2e
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.10016da7
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
test eax, eax
je 0x10058e97
push esi
mov ecx, ebx
mov dword [ebx + 8], edi
call fcn.10016da7
and dword [eax + 0x80], 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
push esi
call fcn.10016da7
mov ecx, eax
call fcn.10016da7
mov ecx, ebx
call fcn.10016da7
fstp qword [ebx]
jmp 0x10059404
cmp dword [ebx + 0x190], 0
lea ecx, [ebx + 0x110]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
jne 0x10058ee0
call fcn.10016da7
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push esi
call fcn.10016da7
test eax, eax
je 0x10059401
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push 2
call fcn.10016da7
mov byte [ebx + 0x24], 0xf6
jmp 0x10059401
call fcn.10016da7
cmp dword [ebx + 0x3c], 0
je 0x10059401
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push esi
call fcn.10016da7
test eax, eax
je 0x10059401
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push 2
call fcn.10016da7
mov byte [ebx + 0x24], 0xf7
jmp 0x10059401
push dword [ebp + 0x1c]
lea ecx, [ebx + 0x58]
push dword [ebp + 0x18]
push edi
call fcn.10016da7
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push esi
call fcn.10016da7
test eax, eax
je 0x10059404
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push 2
call fcn.10016da7
cmp dword [ebx + 0x190], 0
setne al
add al, 0xf6
jmp 0x10059061
push esi
mov ecx, ebx
call fcn.10016da7
push dword [ebp + 0x24]
mov esi, eax
mov dword [ebp - 0x18], eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
sub esp, 0xb8
push 0x2e
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.10016da7
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x10058fda
mov esi, dword [ebp + 8]
mov ecx, ebx
and dword [ebx + 0x28], 0
push esi
mov dword [ebx + 8], edi
call fcn.10016da7
push dword [ebp + 0x1c]
and dword [ebx + 0xd8], 0
lea ecx, [ebx + 0x58]
push dword [ebp + 0x18]
push edi
call fcn.10016da7
mov ecx, ebx
call fcn.10016da7
mov al, byte [ebx + 0x304]
and al, 0x40
neg al
fstp qword [ebx]
sbb al, al
and al, 0xfb
jmp 0x1005905f
push dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x18]
push dword [ebp + 0x18]
jmp 0x10059213
cmp dword [ebx + 0x30], edx
je 0x10059401
push edi
mov ecx, ebx
call fcn.10016da7
test eax, eax
jne 0x10059401
cmp dword [ebx + 0x38], edx
je 0x10059401
mov eax, dword [ebx + 0x108]
cmp dword [ebx + 0x50], eax
jne 0x10059401
mov eax, dword [ebx + 0x304]
test al, 0x20
jne 0x10059054
push dword [ebp + 0x1c]
lea ecx, [ebx + 0x58]
push dword [ebp + 0x18]
push edi
call fcn.10016da7
push dword [ebp + 0x24]
mov ecx, ebx
mov dword [ebx + 0x2f8], 9
push dword [ebp + 0x20]
push 2
call fcn.10016da7
mov byte [ebx + 0x24], 0xf9
jmp 0x10059404
and al, 0x40
mov dword [ebx + 0x28], edx
neg al
sbb al, al
and al, 7
add al, 0xfa
mov byte [ebx + 0x24], al
jmp 0x10059404
push dword [ebp + 0x1c]
lea ecx, [ebx + 0x58]
push dword [ebp + 0x18]
push edi
call fcn.10016da7
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push 3
call fcn.10016da7
jmp 0x10059404
cmp dword [ebx + 0x300], edx
je 0x1005920a
push dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push eax
push esi
push dword [ebx + 0x7c]
mov dword [ebp - 0x20], eax
push dword [ebx + 0x78]
call fcn.10016da7
test eax, eax
je 0x1005920a
mov ecx, dword [ebx + 0x304]
mov edx, ecx
shl edx, 0x19
sar edx, 0x1f
test edx, edx
je 0x10059110
test ecx, 0x10000
jne 0x1005910c
push dword [ebp - 0x20]
and dword [ebx + 0xd8], 0
lea ecx, [ebx + 0x58]
push esi
push edi
call fcn.10016da7
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push 2
mov ecx, ebx
mov dword [ebx + 0x2f8], 8
call fcn.10016da7
mov byte [ebx + 0x24], 0xf2
jmp 0x10059401
test edx, edx
jne 0x1005911c
test ecx, 0x10000
je 0x100591df
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x18]
sub eax, dword [ebx + 0x78]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x1c]
sub eax, dword [ebx + 0x7c]
mov dword [ebp - 0x18], eax
fstp dword [ebp - 0x24]
fild dword [ebp - 0x18]
fstp dword [ebp - 0x20]
test ecx, 0x20000
je 0x10059160
fld dword [ebp - 0x24]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x20]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x20]
fld dword [ebp - 0x24]
mov ecx, dword [ebx + 0x2fc]
fabs
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x20]
mov eax, dword [ecx]
fabs
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
fld dword [ebp - 0x18]
fmul dword [ebp - 0x24]
fld dword [ebp - 0x1c]
fmul dword [ebp - 0x20]
fsubp st(1)
fstp dword [ebp - 0x18]
fldz
fld dword [ebp - 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x100591cc
push dword [ebp + 0x24]
mov ecx, ebx
fstp st(0)
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.10016da7
mov byte [ebx + 0x24], 0xfb
jmp 0x10059401
fldz
fcompp
fnstsw ax
test ah, 0x41
jp 0x10059401
test edx, edx
jne 0x100591e8
mov byte [ebx + 0x24], 0xfa
jmp 0x10059401
push dword [ebp + 0x24]
mov ecx, ebx
mov dword [ebx + 0x2f8], 0xc
push dword [ebp + 0x20]
push 2
call fcn.10016da7
mov byte [ebx + 0x24], 0xfc
jmp 0x10059401
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
lea ecx, [ebx + 0x58]
push edi
call fcn.10016da7
jmp 0x10059401
mov ecx, ebx
call fcn.10016da7
jmp 0x10059404
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push edi
push esi
call fcn.10016da7
mov ecx, eax
jmp 0x10059073
sub eax, 0xf7
je 0x10059327
dec eax
je 0x10059283
dec eax
je 0x10059069
dec eax
dec eax
je 0x10059265
dec eax
je 0x10059078
jmp 0x10059404
cmp dword [ebx + 0x108], esi
jne 0x10059404
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
call fcn.10016da7
jmp 0x10059404
push dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push eax
push esi
mov dword [ebp - 0x20], eax
call fcn.10016da7
test eax, eax
je 0x100592a8
push dword [ebp - 0x20]
push esi
jmp 0x10059210
cmp dword [ebx + 0x34c], 0
je 0x100592fb
cmp dword [ebx + 0x300], 0
je 0x100592fb
push dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
push dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
push eax
push esi
push dword [ebx + 0x7c]
mov dword [ebp - 0x20], eax
push dword [ebx + 0x78]
call fcn.10016da7
test eax, eax
je 0x100592fb
push dword [ebp - 0x20]
and dword [ebx + 0xd8], 0
lea ecx, [ebx + 0x58]
push esi
push edi
call fcn.10016da7
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push 3
jmp 0x100590f2
push dword [ebp + 0x1c]
lea ecx, [ebx + 0x58]
push dword [ebp + 0x18]
push edi
call fcn.10016da7
push 0x26
lea esi, [ebx + 0x260]
mov byte [ebx + 0x24], 1
pop ecx
lea edi, [ebx + 0x1c8]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0xc]
jmp 0x10059401
push esi
mov ecx, ebx
call fcn.10016da7
mov dword [ebp - 0x18], eax
cmp dword [eax + 0x80], edx
je 0x100593dc
push dword [ebp + 0x24]
mov esi, eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
sub esp, 0xb8
push 0x2e
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.10016da7
test eax, eax
je 0x100593d6
mov edi, dword [ebx + 0x2f8]
mov esi, dword [ebp - 0x18]
cmp edi, 3
jne 0x100593c3
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.10016da7
test eax, eax
je 0x100593c0
mov esi, dword [ebp + 8]
mov ecx, ebx
push esi
mov dword [ebx + 0x2f8], 4
call fcn.10016da7
mov edi, dword [ebp + 0xc]
and dword [eax + 0x80], 0
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
push esi
call fcn.10016da7
mov ecx, eax
call fcn.10016da7
mov byte [ebx + 0x24], 0xf6
jmp 0x100593dc
cmp edi, 3
mov edi, dword [ebp + 0xc]
je 0x100593d9
and dword [esi + 0x80], 0
mov ecx, ebx
mov esi, dword [ebp + 8]
jmp 0x100593a6
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push edi
push esi
call fcn.10016da7
mov ecx, eax
call fcn.10016da7
push dword [ebp + 0x24]
mov ecx, ebx
push dword [ebp + 0x20]
push 3
call fcn.10016da7
mov esi, dword [ebp + 8]
test byte [ebx + 0x304], 0x40
je 0x10059451
mov ecx, dword [ebx + 0x308]
test ecx, ecx
je 0x1005967d
and dword [ebp - 4], 0
fild dword [ebp + 0x1c]
push edi
push ecx
push ecx
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [esp + 4]
fild dword [ebp + 0x18]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [esp]
push esi
call fcn.10016da7
jmp 0x1005967d
cmp dword [ebx + 0x30c], 0
je 0x1005967d
cmp byte [ebx + 0x24], 0xfa
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
jne 0x100594c3
cmp dword [ebx + 0x34c], 0
jne 0x100594c3
cmp dword [ebx + 0x850], 0
je 0x10059491
push eax
push ecx
mov ecx, ebx
call fcn.10016da7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
cmp dword [ebx + 0x34c], 0
jne 0x100594c3
mov edx, dword [ebp + 0x14]
test dl, dl
js 0x100594c6
cmp dword [ebx + 0x310], 1
jne 0x100594c6
push eax
push ecx
push ecx
lea eax, [ebp - 0x24]
mov ecx, ebx
push eax
call fcn.10016da7
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x14]
test dword [ebx + 0x304], 0x2000
jne 0x10059522
cmp dword [ebx + 0x34c], 0
jne 0x10059522
push dword [ebp - 0x20]
cmp byte [ebx + 0x24], 0xfa
lea esi, [ebx + 0x8e4]
fld dword [ebp + 0x10]
push ecx
sete al
shr edx, 8
push eax
push edi
push dword [ebx + 0x310]
and dl, 1
push ecx
fstp dword [esp]
push edx
mov ecx, esi
call fcn.10016da7
mov ecx, esi
call fcn.10016da7
push ecx
mov ecx, dword [ebx + 0x30c]
fstp dword [esp]
call fcn.10016da7
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x20]
xor eax, eax
cmp byte [ebx + 0x24], 0xfa
push ecx
mov ecx, dword [ebx + 0x30c]
sete al
push eax
push edi
push dword [ebp + 8]
call fcn.1005292c
test eax, eax
je 0x1005967d
mov esi, dword [ebx + 0x30c]
lea edi, [ebp - 0x70]
push 0x12
add esi, 4
pop ecx
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
lea esi, [ebp - 0x40]
mov edi, esp
mov ecx, ebx
push dword [ebp + 0x1c]
movsd dword es:[edi], dword [esi]
push dword [ebp + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10016da7
mov edi, 0x2000
test dword [ebx + 0x304], edi
jne 0x100595ac
cmp dword [ebx + 0x34c], 0
jne 0x100595ac
mov eax, dword [ebx + 0x2fc]
test eax, eax
je 0x100595ac
cmp dword [eax + 0x18], 0
mov esi, dword [ebp + 0xc]
je 0x100595af
push dword [ebp + 0x24]
lea eax, [ebp - 0x70]
push dword [ebp + 0x20]
push esi
push eax
call fcn.10016da7
jmp 0x100595af
mov esi, dword [ebp + 0xc]
test dword [ebx + 0x304], edi
jne 0x100595e1
cmp dword [ebx + 0x34c], 0
jne 0x100595e1
mov eax, dword [ebx + 0x2fc]
test eax, eax
je 0x100595e1
cmp dword [eax + 0x34], 0
je 0x100595e1
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push dword [ebp - 0x28]
push esi
call fcn.10016da7
mov edx, dword [ebx + 0x348]
test edx, edx
je 0x10059606
mov ecx, dword [ebx + 0x30c]
call fcn.1005287d
test eax, eax
je 0x10059606
lea eax, [ebp - 0x40]
mov ecx, edx
push eax
push esi
call fcn.10016da7
test dword [ebx + 0x304], edi
jne 0x10059672
cmp dword [ebx + 0x34c], 0
jne 0x10059672
fld dword [ebp - 0x3c]
lea ecx, [ebx + 0x8e4]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [ebp - 0x40]
fstp dword [esp]
call fcn.10016da7
cmp dword [ebp - 0x2c], 2
jne 0x10059672
cmp byte [ecx + 0x30], 0
je 0x10059672
cmp dword [ecx + 0x2c], 0
jne 0x10059672
fldz
fld dword [ebp - 0x3c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10059655
mov dl, 1
jmp 0x10059657
xor dl, dl
fldz
fld dword [ebp - 0x40]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10059669
mov al, 1
jmp 0x1005966b
xor al, al
push edx
push eax
call fcn.10016da7
lea eax, [ebp - 0x70]
mov ecx, ebx
push eax
call fcn.10016da7
call fcn.1002874a
ret 0x20