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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x10200e40]
xor eax, esp
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xb0]
push ebx
mov ebx, dword [esp + 0xa8]
push ebp
push esi
push edi
mov edi, dword [0x1020f198]
mov ebp, ecx
mov dword [esp + 0x1c], eax
movss dword [esp + 0x28], xmm3
mov dword [esp + 0x2c], edx
mov eax, dword [edi + 0x3f8c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x14], ebx
mov byte [eax + 0xb0], 1
mov esi, dword [edi + 0x3f8c]
mov dword [esp + 0x20], esi
cmp byte [esi + 0xb3], 0
jne 0x1005f1f3
mov ecx, dword [esi + 0xec]
xor edx, edx
mov eax, dword [esi + 0xf4]
push dword [eax + ecx*4 - 4]
mov ecx, ebp
call fcn.10033cd0
add esp, 4
mov ebp, eax
test byte [edi + 0x48e8], 1
je 0x1005e8e9
movss xmm1, dword [edi + 0x48f8]
jmp 0x1005e8f1
movss xmm1, dword [esi + 0x1ac]
xorps xmm6, xmm6
comiss xmm6, xmm1
jbe 0x1005e933
cmp dword [esi + 0x198], 0
jne 0x1005e911
cmp dword [edi + 0x4ce0], 0
lea eax, [esi + 0x234]
je 0x1005e917
lea eax, [esi + 0x204]
movss xmm0, dword [eax]
subss xmm0, dword [esi + 0xf8]
addss xmm0, xmm1
movss xmm1, dword [0x101f4f54]
maxss xmm1, xmm0
mov eax, dword [esp + 0x3c]
mov ecx, eax
cvttss2si esi, xmm1
cmp eax, 0xffffffff
jae 0x1005e958
mov dl, byte [ecx]
test dl, dl
je 0x1005e958
cmp dl, 0x23
jne 0x1005e952
cmp byte [ecx + 1], dl
je 0x1005e958
inc ecx
cmp ecx, 0xffffffff
jb 0x1005e942
movss xmm0, dword [edi + 0x3cf4]
cmp eax, ecx
jne 0x1005e969
movaps xmm7, xmm6
jmp 0x1005e9b2
movss xmm3, dword [0x101f5050]
movaps xmm2, xmm0
push 0
push ecx
push eax
push ecx
mov ecx, dword [edi + 0x3cf0]
lea eax, [esp + 0x40]
mov dword [esp], 0xbf800000
push eax
call fcn.10052570
movss xmm0, dword [esp + 0x30]
xorps xmm6, xmm6
addss xmm0, dword [0x101f4f4c]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x34]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
comiss xmm7, xmm6
mov eax, dword [esp + 0x20]
movss xmm3, dword [eax + 0xf8]
movss xmm5, dword [edi + 0x38e8]
movaps xmm2, xmm3
movd xmm1, esi
mov esi, eax
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x40], xmm7
addss xmm2, xmm1
movaps xmm1, xmm5
addss xmm1, xmm5
addss xmm1, xmm0
addss xmm1, dword [esi + 0xfc]
movss dword [esp + 0x48], xmm3
movss xmm4, dword [esi + 0xfc]
movss dword [esp + 0x4c], xmm4
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x54], xmm1
jbe 0x1005ea21
movaps xmm0, xmm7
addss xmm0, dword [edi + 0x38fc]
jmp 0x1005ea24
movaps xmm0, xmm6
addss xmm1, xmm6
movss dword [esp + 0x58], xmm3
addss xmm2, xmm0
movss dword [esp + 0x5c], xmm4
lea ecx, [esp + 0x30]
movss dword [esp + 0x64], xmm1
subss xmm1, xmm4
movss dword [esp + 0x60], xmm2
subss xmm2, xmm3
movss dword [esp + 0x34], xmm1
movaps xmm1, xmm5
movss dword [esp + 0x30], xmm2
call fcn.10042bd0
lea eax, [esp + 0x48]
mov edx, ebp
push 0x400
push eax
lea ecx, [esp + 0x60]
call fcn.100428e0
add esp, 8
test al, al
je 0x1005f1f3
cmp dword [esp + 0x1c], 0
jne 0x1005ea9c
mov eax, dword [esp + 0x2c]
shl eax, 4
mov eax, dword [eax + 0x101f3548]
mov dword [esp + 0x1c], eax
push dword [edi + 0x490c]
mov edx, ebp
lea ecx, [esp + 0x4c]
call fcn.100375d0
mov ecx, dword [0x1020f198]
add esp, 4
mov byte [esp + 0x13], al
cmp dword [ecx + 0x3fdc], ebp
jne 0x1005eace
cmp dword [ecx + 0x5c88], ebp
je 0x1005ec9e
mov al, byte [esp + 0x13]
xorps xmm2, xmm2
mov byte [esp + 0x1a], 0
test al, al
je 0x1005eb15
cmp byte [ecx + 0xe08], 0
je 0x1005eb15
movss xmm0, dword [ecx + 0x3850]
comiss xmm2, xmm0
ja 0x1005eb15
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1005eb15
mov edx, 0x28f
call fcn.1004ace0
test ebp, ebp
jne 0x1005eb3c
cmp byte [eax + 8], 0
je 0x1005eb4d
mov al, byte [esp + 0x13]
mov byte [esp + 0x19], 0
test al, al
je 0x1005eb69
cmp word [edi + 0x382a], 2
jne 0x1005eb69
mov edx, 0x28f
call fcn.1004ace0
test ebp, ebp
jne 0x1005eb54
cmp byte [eax + 8], 0
jmp 0x1005eb63
mov edx, dword [eax]
cmp edx, ebp
je 0x1005eb4d
cmp byte [eax + 8], 0
jne 0x1005eb11
cmp edx, 0xffffffff
jne 0x1005eb11
mov byte [esp + 0x19], 1
jmp 0x1005eb1e
mov edx, dword [eax]
cmp edx, ebp
je 0x1005eb65
cmp byte [eax + 8], 0
jne 0x1005eb69
cmp edx, 0xffffffff
jne 0x1005eb69
mov al, 1
jmp 0x1005eb6b
xor al, al
mov dl, byte [esp + 0x19]
mov byte [esp + 0x27], al
test dl, dl
jne 0x1005ec3a
test al, al
jne 0x1005ec3a
cmp dword [edi + 0x4a50], ebp
je 0x1005ec3a
xor ah, ah
mov al, byte [esp + 0x1a]
cmp byte [edi + 0x49], 0
je 0x1005ebef
test al, al
jne 0x1005ebef
cmp dword [edi + 0x3fdc], ebp
jne 0x1005ebef
cmp byte [esp + 0x13], al
je 0x1005ebef
cmp byte [edi + 0x383e], al
je 0x1005ebef
movss xmm1, dword [edi + 0x58]
mulss xmm1, dword [0x101f4f0c]
comiss xmm2, xmm1
jbe 0x1005ebcc
movss xmm1, dword [ecx + 0x58]
movss xmm0, dword [ecx + 0x3878]
mulss xmm1, xmm1
comiss xmm0, xmm1
jae 0x1005ebef
mov dword [edi + 0x4a50], ebp
mov al, 1
mov dword [edi + 0x4a5c], 1
test ah, ah
je 0x1005ec9a
test al, al
jne 0x1005ec9e
mov edx, esi
mov ecx, ebp
call fcn.10037270
mov edx, esi
mov ecx, ebp
call fcn.10044650
xor edx, edx
mov ecx, esi
call fcn.1003fc20
mov dword [edi + 0x48c8], 3
cmp dword [edi + 0x3fdc], ebp
jne 0x1005ecc2
mov ecx, 9
jmp 0x1005ecca
mov ah, 1
mov byte [esp + 0x1b], ah
test dl, dl
jne 0x1005ec48
test al, al
je 0x1005ec78
mov edx, 0x28f
call fcn.1004ace0
cmp byte [esp + 0x19], 0
mov dword [eax + 4], ebp
mov dword [eax], ebp
mov word [eax + 8], 0
je 0x1005ec6d
cmp byte [edi + 0xe1c], 0
jne 0x1005ec91
cmp byte [esp + 0x27], 0
jne 0x1005ec91
mov ah, byte [esp + 0x1b]
cmp dword [edi + 0x4a50], ebp
jne 0x1005eb91
test byte [edi + 0x4a5c], 1
je 0x1005eb91
mov al, 1
mov ah, al
jmp 0x1005eb95
test al, al
je 0x1005ec24
push 0
push 0
push dword [esp + 0x24]
mov edx, ebp
lea ecx, [esp + 0x54]
push ebx
push dword [esp + 0x3c]
push dword [esp + 0x50]
call fcn.1005f8e0
add esp, 0x18
jmp 0x1005f1f5
movzx ecx, byte [esp + 0x13]
add ecx, 7
movss xmm1, dword [0x101f4f54]
call fcn.10034770
push 0
mov edx, ebp
lea ecx, [esp + 0x4c]
mov esi, eax
call fcn.100356e0
movss xmm0, dword [edi + 0x38ec]
mov dl, 1
movss dword [esp], xmm0
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.100354b0
mov esi, dword [0x1020f198]
add esp, 0x14
cmp dword [esi + 0x3fdc], ebp
jne case.default.0x1005ed81
mov eax, dword [esi + 0x4000]
cmp eax, 1
jne 0x1005ed37
cmp byte [esi + 0xe08], 0
je 0x1005ed52
jmp 0x1005ed5b
cmp eax, 2
je 0x1005ed41
cmp eax, 3
jne 0x1005ed5b
cmp dword [esi + 0x4a58], ebp
jne 0x1005ed5b
cmp byte [esi + 0x3fe8], 0
jne 0x1005ed5b
xor edx, edx
xor ecx, ecx
call fcn.10037270
cmp dword [esi + 0x3fdc], ebp
jne case.default.0x1005ed81
test byte [esi + 0x490c], 0x80
jne case.default.0x1005ed81
mov esi, dword [esp + 0x2c]
cmp esi, 9
ja case.default.0x1005ed81
jmp dword [esi*4 + 0x1005f210]
movsx eax, byte [ebx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005ed9e
mov al, byte [eax]
jmp 0x1005eda0
mov al, 0x7f
movsx ecx, al
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005edb2
mov al, byte [eax]
jmp 0x1005edb4
mov al, 0x80
movss xmm2, dword [esp + 0x28]
lea edx, [esp + 0x20]
push ecx
push dword [esp + 0x20]
movsx eax, al
push ecx
push eax
mov ecx, 4
call fcn.1006fb40
mov ecx, dword [esp + 0x24]
mov bl, al
add esp, 0x10
test bl, bl
je 0x1005f12f
mov al, byte [esp + 0x20]
mov byte [ecx], al
jmp 0x1005f0f6
movzx eax, byte [ebx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005ee04
mov al, byte [eax]
jmp 0x1005ee06
or al, 0xff
movzx ecx, al
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005ee18
mov al, byte [eax]
jmp 0x1005ee1a
xor al, al
movss xmm2, dword [esp + 0x28]
lea edx, [esp + 0x20]
push ecx
push dword [esp + 0x20]
movzx eax, al
push ecx
push eax
mov ecx, 5
call fcn.1006fe60
jmp 0x1005edd2
movsx eax, word [ebx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005ee51
movzx eax, word [eax]
jmp 0x1005ee56
mov eax, 0x7fff
movsx ecx, ax
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005ee69
movzx eax, word [eax]
jmp 0x1005ee6e
mov eax, 0xffff8000
movss xmm2, dword [esp + 0x28]
lea edx, [esp + 0x20]
push ecx
push dword [esp + 0x20]
cwde
push ecx
push eax
mov ecx, 4
call fcn.1006fb40
mov ecx, dword [esp + 0x24]
mov bl, al
add esp, 0x10
test bl, bl
je 0x1005f12f
mov ax, word [esp + 0x20]
mov word [ecx], ax
jmp 0x1005f0f6
movzx eax, word [ebx]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005eebf
movzx eax, word [eax]
jmp 0x1005eec4
mov eax, 0xffff
movzx ecx, ax
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005eed7
movzx eax, word [eax]
jmp 0x1005eed9
xor eax, eax
movss xmm2, dword [esp + 0x28]
lea edx, [esp + 0x20]
push ecx
push dword [esp + 0x20]
movzx eax, ax
push ecx
push eax
mov ecx, 5
call fcn.1006fe60
mov ecx, dword [esp + 0x24]
mov bl, al
add esp, 0x10
test bl, bl
je 0x1005f12f
mov ax, word [esp + 0x20]
mov word [ecx], ax
jmp 0x1005f0f6
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005ef24
mov ecx, dword [eax]
jmp 0x1005ef29
mov ecx, 0x7fffffff
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005ef38
mov eax, dword [eax]
jmp 0x1005ef3d
mov eax, 0x80000000
movss xmm2, dword [esp + 0x28]
mov edx, ebx
push ecx
push dword [esp + 0x20]
push ecx
push eax
mov ecx, esi
call fcn.1006fb40
add esp, 0x10
jmp 0x1005f0f0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005ef6a
mov ecx, dword [eax]
jmp 0x1005ef6d
or ecx, 0xffffffff
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005ef7c
mov eax, dword [eax]
jmp 0x1005ef7e
xor eax, eax
movss xmm2, dword [esp + 0x28]
mov edx, ebx
push ecx
push dword [esp + 0x20]
push ecx
push eax
mov ecx, esi
call fcn.1006fe60
add esp, 0x10
jmp 0x1005f0f0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005efae
mov esi, dword [eax]
mov edx, dword [eax + 4]
jmp 0x1005efb6
or esi, 0xffffffff
mov edx, 0x7fffffff
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005efc8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x1005efcf
xor ecx, ecx
mov eax, 0x80000000
movss xmm2, dword [esp + 0x28]
push ecx
push dword [esp + 0x20]
push edx
push esi
push eax
push ecx
mov ecx, dword [esp + 0x44]
mov edx, ebx
call fcn.10070190
jmp 0x1005f0ed
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005f000
mov esi, dword [eax]
mov edx, dword [eax + 4]
jmp 0x1005f006
or esi, 0xffffffff
or edx, 0xffffffff
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005f018
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x1005f029
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
movss xmm2, dword [esp + 0x28]
push ecx
push dword [esp + 0x20]
push edx
push esi
push eax
push ecx
mov ecx, dword [esp + 0x44]
mov edx, ebx
call fcn.10070560
jmp 0x1005f0ed
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005f059
movss xmm0, dword [eax]
jmp 0x1005f061
movss xmm0, dword [0x101f5050]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005f072
movss xmm3, dword [eax]
jmp 0x1005f07a
movss xmm3, dword [0x101f5090]
movss xmm2, dword [esp + 0x28]
mov edx, ebx
push ecx
push dword [esp + 0x20]
push ecx
mov ecx, esi
movss dword [esp], xmm0
call fcn.10070930
add esp, 0xc
jmp 0x1005f0f0
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x1005f0aa
movsd xmm1, qword [eax]
jmp 0x1005f0b2
movsd xmm1, qword [0x101f5058]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x1005f0c3
movsd xmm0, qword [eax]
jmp 0x1005f0cb
movsd xmm0, qword [0x101f5098]
movss xmm2, dword [esp + 0x28]
sub esp, 0x14
mov edx, ebx
mov ecx, esi
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
push dword [esp + 0x30]
call fcn.10070c80
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov bl, al
test bl, bl
je 0x1005f12f
mov eax, dword [0x1020f198]
cmp word [eax + 0x5d1e], 0
jg 0x1005f12f
mov edx, dword [eax + 0x3fdc]
cmp edx, ebp
je 0x1005f117
test edx, edx
jne 0x1005f120
mov word [eax + 0x3fec], 0x101
or dword [eax + 0x4910], 4
jmp 0x1005f12f
mov ecx, dword [esp + 0x14]
xor bl, bl
push dword [esp + 0x1c]
mov edx, 0x40
push ecx
push dword [esp + 0x34]
lea ecx, [esp + 0x74]
call fcn.1005e3e0
lea ecx, [esp + 0x74]
add esp, 0xc
add ecx, eax
cmp byte [edi + 0x5e24], 0
je 0x1005f171
mov eax, dword [0x1020f198]
mov dword [eax + 0x5e3c], 0x101f43f0
mov dword [eax + 0x5e40], 0x101f43ec
push 0
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x3f000000
push eax
push 0
push ecx
lea eax, [esp + 0x78]
mov dword [esp + 0x44], 0x3f000000
push eax
lea edx, [esp + 0x64]
lea ecx, [esp + 0x5c]
call fcn.10034e90
movss xmm0, dword [esp + 0x54]
add esp, 0x14
comiss xmm0, dword [0x101f4e98]
jbe 0x1005f1ef
movss xmm0, dword [esp + 0x50]
xor edx, edx
addss xmm0, dword [edi + 0x38fc]
mov ecx, dword [esp + 0x3c]
push 1
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [edi + 0x38e8]
movss dword [esp + 0x48], xmm0
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.10034a80
add esp, 0xc
mov al, bl
jmp 0x1005f1f5
xor al, al
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10109e3a
add esp, 0xa0
ret