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

Disassembly:
sub esp, 0x5c
push ebp
push esi
mov esi, dword [esp + 0x68]
cmp byte [esi + 0x5d], 0
je 0x459328
push esi
call fcn.004583a0
add esp, 4
mov ebp, dword [0x53151c]
mov eax, dword [ebp + 0x19b0]
mov dword [esp + 0xc], eax
cmp byte [eax + 0x7f], 0
je 0x459346
pop esi
xor al, al
pop ebp
add esp, 0x5c
ret
test dword [esi + 0x54], 0x100000
push ebx
push edi
mov edi, dword [esp + 0x74]
push 0
je 0x45936c
push 0
push edi
call fcn.00421b60
mov ebx, eax
push ebx
call fcn.00423c10
add esp, 0x10
jmp 0x459376
push edi
mov ecx, eax
call fcn.00420b80
mov ebx, eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4593b9
cmp byte [eax], 0
jne 0x4593b7
push 1
push 0x18
call fcn.0042a110
movaps xmm0, xmmword [0x4a7500]
lea eax, [esp + 0x44]
push 0
push ebx
push eax
movups xmmword [esp + 0x50], xmm0
call fcn.00423720
add esp, 0x14
call fcn.00429bb0
pop edi
pop ebx
pop esi
xor al, al
pop ebp
add esp, 0x5c
ret
test eax, eax
setne al
movzx eax, al
push eax
lea eax, [esp + 0x38]
push edi
push eax
call fcn.00459250
add esp, 0xc
test ebx, ebx
je 0x4593ec
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4593ec
mov edi, dword [esi + 8]
nop dword [eax]
cmp dword [edi], ebx
je 0x4593ee
inc eax
add edi, 0x20
cmp eax, ecx
jl 0x4593e0
xor edi, edi
mov byte [esp + 0x70], 0
test edi, edi
jne 0x4594ce
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], edi
cmp ecx, eax
jne 0x459494
lea edi, [ecx + 1]
test eax, eax
je 0x459443
cdq
sub eax, edx
mov edx, dword [esi + 4]
sar eax, 1
add eax, edx
jmp 0x45944b
mov edx, dword [esi + 4]
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, edx
jle 0x459494
mov eax, edi
shl eax, 5
push eax
call fcn.00424520
mov edx, dword [esi + 8]
add esp, 4
mov dword [esp + 0x70], eax
test edx, edx
je 0x45948c
mov ecx, dword [esi]
shl ecx, 5
push ecx
push edx
push eax
call fcn.0046ded0
push dword [esi + 8]
call fcn.00424550
mov eax, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esi]
mov dword [esi + 8], eax
mov dword [esi + 4], edi
movups xmm0, xmmword [esp + 0x3c]
shl ecx, 5
add ecx, dword [esi + 8]
mov byte [esp + 0x70], 1
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0x4c]
movups xmmword [ecx + 0x10], xmm0
inc dword [esi]
mov ecx, dword [esi]
mov edi, dword [esi + 8]
movss xmm0, dword [esp + 0x34]
add edi, 0xffffffe0
shl ecx, 5
add edi, ecx
mov dword [edi], ebx
movss dword [edi + 0x18], xmm0
jmp 0x4594d4
movss xmm0, dword [esp + 0x34]
mov edx, dword [esp + 0x7c]
mov eax, edi
sub eax, dword [esi + 8]
or edx, 0x100000
sar eax, 5
cmp dword [esp + 0x78], 0
mov word [esi + 0x60], ax
cmovne edx, dword [esp + 0x7c]
movss dword [edi + 0x1c], xmm0
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp + 0x1960]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x54]
shr eax, 0x15
and eax, 0xffffff01
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 8]
mov dword [edi + 8], ecx
inc eax
mov dword [edi + 4], edx
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [edi + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov edx, ecx
lea eax, [edx + 1]
mov dword [esp + 0x30], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x459548
sub edx, dword [esp + 0x30]
lea eax, [ecx + 1]
add eax, edx
push eax
push ecx
lea ecx, [esi + 0x6c]
call fcn.00430c60
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x54]
cmp dword [esp + 0x20], edx
jl 0x459592
test al, 1
jne 0x4595ab
mov eax, dword [esi + 0x40]
mov dword [edi + 0x14], eax
movss xmm0, dword [ebp + 0x1560]
addss xmm0, dword [edi + 0x18]
addss xmm0, dword [esi + 0x40]
movss dword [esi + 0x40], xmm0
jmp 0x4595ab
test al, 2
je 0x4595ab
cmp dword [esi + 0x14], 0
jne 0x4595ab
cmp dword [esp + 0x1c], edx
jge 0x4595a8
cmp dword [esi + 0x10], 0
jne 0x4595ab
mov dword [esi + 0x14], ebx
test byte [esp + 0x24], 2
je 0x4595ba
cmp dword [esi + 0x10], ebx
je 0x4595ba
mov dword [esi + 0x14], ebx
cmp dword [esi + 0x18], ebx
sete cl
mov dword [esp + 0x18], ecx
jne 0x459615
mov byte [esi + 0x5e], 1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x20], edx
jge 0x459642
cmp eax, edx
jge 0x4595df
cmp byte [esp + 0x70], 0
je 0x459642
push 1
push 0x18
call fcn.0042a110
movaps xmm0, xmmword [0x4a7500]
lea eax, [esp + 0x44]
push 0
push ebx
push eax
movups xmmword [esp + 0x50], xmm0
call fcn.00423720
add esp, 0x14
call fcn.00429bb0
mov al, byte [esp + 0x18]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x5c
ret
cmp dword [esi + 0x10], 0
jne 0x4595ca
mov eax, dword [esp + 0x1c]
cmp eax, edx
jge 0x4595ce
cmp dword [esi], 1
jne 0x4595ce
test byte [esi + 0x54], 2
movzx ecx, cl
mov dword [esp + 0x30], 1
cmove ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
jmp 0x4595ce
cmp dword [esi + 0x10], ebx
jne 0x459650
mov eax, dword [ebp + 0x1960]
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0x14]
movss xmm4, dword [esi + 0x28]
movss xmm1, dword [edi + 0x18]
addss xmm4, dword [0x48f4f0]
movss xmm0, dword [ecx + 0xc8]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [ecx + 0xcc]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x14]
subss xmm0, dword [esi + 0x44]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
addss xmm3, dword [esi + 0x24]
movss dword [ecx + 0xcc], xmm4
movaps xmm2, xmm3
movss dword [ecx + 0xc8], xmm3
movss xmm5, dword [esi + 0x24]
addss xmm2, xmm1
comiss xmm5, xmm3
movaps xmm1, xmm4
movss dword [esp + 0x5c], xmm3
addss xmm1, dword [esp + 0x38]
movss dword [esp + 0x60], xmm4
movss dword [esp + 0x64], xmm2
movss dword [esp + 0x68], xmm1
ja 0x4596eb
comiss xmm2, dword [esi + 0x2c]
ja 0x4596eb
mov byte [esp + 0x12], 0
jmp 0x459749
subss xmm4, dword [0x48f4f4]
movss xmm0, dword [esi + 0x2c]
maxss xmm3, xmm5
push 1
lea eax, [esp + 0x38]
mov byte [esp + 0x16], 1
push eax
lea eax, [esp + 0x44]
movss dword [esp + 0x3c], xmm0
push eax
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x48], xmm3
movss dword [esp + 0x4c], xmm4
call fcn.00429e80
movss xmm1, dword [esp + 0x74]
add esp, 0xc
movss xmm2, dword [esp + 0x64]
movss xmm4, dword [esp + 0x60]
movss xmm3, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
movss xmm0, dword [ecx + 0xe0]
subss xmm2, xmm3
movss dword [esp + 0x70], xmm0
subss xmm1, xmm4
movss xmm0, dword [ecx + 0xe4]
lea eax, [esp + 0x3c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [ebp + 0x154c]
push ecx
movss dword [esp], xmm0
push eax
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x48], xmm1
call fcn.00423ad0
mov eax, dword [esp + 0x1c]
movss xmm0, dword [esp + 0x78]
push 0
push ebx
movss dword [eax + 0xe0], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [eax + 0xe4], xmm0
lea eax, [esp + 0x6c]
push eax
call fcn.00423720
add esp, 0x14
test al, al
jne 0x4597fc
cmp byte [esp + 0x12], al
je 0x4597d0
call fcn.00429c00
mov eax, dword [esp + 0x14]
movss xmm0, dword [esp + 0x1c]
pop edi
pop ebx
movss dword [eax + 0xc8], xmm0
movss xmm0, dword [esp + 0x28]
pop esi
movss dword [eax + 0xcc], xmm0
mov al, byte [esp + 0xc]
pop ebp
add esp, 0x5c
ret
cmp byte [ebp + 0x1d34], 0
mov ecx, 0x44
mov eax, 0x1044
cmove eax, ecx
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00448e40
add esp, 0x14
test al, al
je 0x459830
mov dword [esi + 0x14], ebx
cmp dword [ebp + 0x19d0], ebx
mov dl, byte [esp + 0x70]
sete al
or dl, al
cmp byte [esp + 0x13], 0
mov byte [esp + 0x70], dl
jne 0x459894
call fcn.0042d960
mov dl, byte [esp + 0x70]
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x274]
mov dword [esp + 0x70], eax
jne 0x45992f
test dl, dl
jne 0x45992f
mov ecx, dword [esp + 0x2c]
cmp byte [esp + 0x18], dl
je 0x45991e
movzx eax, cl
xor eax, 1
lea eax, [eax*2 + 0x23]
jmp 0x459934
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x20], ecx
jl 0x459853
push ecx
mov dword [esp], 0xbf800000
push 0
call fcn.004232b0
add esp, 8
test al, al
je 0x45984f
cmp byte [ebp + 0x1d34], 0
jne 0x45984f
test byte [esi + 0x54], 1
je 0x45984f
movss xmm1, dword [ebp + 0x378]
xorps xmm2, xmm2
comiss xmm2, xmm1
jbe 0x4598f0
movss xmm0, dword [esp + 0x5c]
comiss xmm0, dword [ebp + 0xe8]
jbe 0x4598f0
mov eax, dword [edi]
mov dword [esi + 0x58], eax
mov byte [esi + 0x5c], 0xff
jmp 0x45984f
comiss xmm1, xmm2
jbe 0x45984f
movss xmm0, dword [ebp + 0xe8]
comiss xmm0, dword [esp + 0x64]
mov dl, byte [esp + 0x70]
jbe 0x459853
mov eax, dword [edi]
mov dword [esi + 0x58], eax
mov byte [esi + 0x5c], 1
jmp 0x459853
test cl, cl
mov eax, 0x24
mov edx, 0x21
cmovne eax, edx
jmp 0x459934
mov eax, 0x22
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.004207e0
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x84]
call fcn.00458fd0
push 1
lea eax, [esp + 0x78]
push ebx
push eax
call fcn.0042afc0
push 8
call fcn.00422fa0
add esp, 0x28
test al, al
je 0x459994
push 0
push 1
call fcn.004231f0
add esp, 8
test al, al
jne 0x459991
push 1
call fcn.004233f0
add esp, 4
test al, al
je 0x459994
mov dword [esi + 0x14], ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x54]
or ecx, 4
and al, 8
cmove ecx, dword [esp + 0x24]
cmp dword [esp + 0x78], 0
mov dword [esp + 0x34], ecx
je 0x4599c3
mov ecx, dword [esp + 0x14]
lea eax, [ebx + 1]
push eax
call fcn.00420be0
mov ecx, dword [esp + 0x34]
jmp 0x4599c5
xor eax, eax
push eax
push ebx
push dword [esp + 0x7c]
lea eax, [esp + 0x68]
push dword [esi + 0x68]
push dword [esi + 0x64]
push ecx
push eax
push dword [esp + 0x8c]
call fcn.00459ab0
add esp, 0x20
test al, al
je 0x459a1c
mov eax, dword [esp + 0x78]
test eax, eax
je 0x459a1c
mov byte [eax], 0
mov eax, dword [edi + 4]
mov ecx, dword [edi]
and eax, 1
cmp dword [esi + 0x18], ecx
jne 0x459a15
test eax, eax
jne 0x459a1c
mov dword [edi + 8], 0xffffffff
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], eax
jmp 0x459a1c
test eax, eax
je 0x459a1c
mov dword [esi + 0x14], ecx
cmp byte [esp + 0x12], 0
je 0x459a28
call fcn.00429c00
mov eax, dword [esp + 0x14]
movss xmm0, dword [esp + 0x1c]
movss dword [eax + 0xc8], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [eax + 0xcc], xmm0
cmp dword [ebp + 0x19d0], ebx
jne 0x459a9c
cmp byte [esp + 0x13], 0
jne 0x459a9c
movss xmm0, dword [ebp + 0x19e0]
comiss xmm0, dword [0x48fc20]
jbe 0x459a9c
push 0
call fcn.00422fa0
add esp, 4
test al, al
je 0x459a9c
test byte [esi + 0x54], 0x20
jne 0x459a9c
mov ebx, dword [esp + 0x74]
push ebx
push 0
push ebx
call fcn.0041fe80
add esp, 8
sub eax, ebx
push eax
push str._.s
call fcn.0042dfd0
add esp, 0xc
mov al, byte [esp + 0x18]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x5c
ret