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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, dword [0x1022d00c]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
mov ebx, dword [0x1022d548]
push esi
push edi
mov edi, ecx
mov byte [esp + 0x15], dl
mov eax, dword [ebx + 0x3f34]
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [eax + 0xe1], 1
mov esi, dword [ebx + 0x3f34]
mov dword [esp + 0x30], esi
cmp byte [esi + 0xe4], 0
jne 0x100394e5
push ecx
push edi
mov ecx, esi
call fcn.10006085
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x38]
push 1
push 0
mov edx, edi
mov dword [esp + 0x38], eax
call fcn.10008ad6
mov edi, dword [ebp + 0xc]
add esp, 0xc
xorps xmm1, xmm1
movss xmm0, dword [edi + 4]
ucomiss xmm0, xmm1
movss dword [esp + 0x18], xmm0
lahf
test ah, 0x44
jp 0x10038fc0
movss xmm0, dword [esp + 0x38]
movss dword [esp + 0x18], xmm0
movss xmm7, dword [edi]
ucomiss xmm7, xmm1
lahf
test ah, 0x44
jp 0x10038fd3
movss xmm7, dword [esp + 0x34]
movss dword [esp + 0x28], xmm0
lea ecx, [esp + 0x24]
movss xmm0, dword [esi + 0x128]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esi + 0x12c]
addss xmm0, dword [esi + 0x160]
movss dword [esp + 0x24], xmm7
movss dword [esp + 0x1c], xmm0
call fcn.100109b8
mov ecx, dword [ebp + 8]
mov edx, ecx
movss xmm2, dword [esp + 0x20]
shr edx, 1
and dl, 1
mov dword [esp + 0x24], edx
je 0x10039034
movss xmm5, dword [esi + 0x238]
movss xmm1, dword [esi + 0x240]
jmp 0x1003903f
movss xmm1, dword [esi + 0x230]
movaps xmm5, xmm2
movss xmm0, dword [edi]
xorps xmm4, xmm4
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x10039057
test ecx, 0x1000000
je 0x10039065
movss xmm7, dword [esp + 0x34]
subss xmm1, xmm5
maxss xmm7, xmm1
movss xmm0, dword [esp + 0x1c]
addss xmm7, xmm5
movss dword [esp + 0x6c], xmm2
movaps xmm6, xmm0
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x54], xmm5
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x64], xmm7
movss dword [esp + 0x5c], xmm7
addss xmm6, dword [esp + 0x18]
movss dword [esp + 0x68], xmm6
movss dword [esp + 0x60], xmm6
test ecx, 0x4000000
jne 0x10039126
test dl, dl
jne 0x100390bc
movss xmm4, dword [ebx + 0x3878]
movss xmm3, dword [ebx + 0x387c]
movaps xmm0, xmm4
mulss xmm0, dword [0x10227ad8]
movss xmm1, dword [esp + 0x1c]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10227ad8]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm5, xmm2
subss xmm1, xmm0
addss xmm4, xmm7
addss xmm3, xmm6
movss dword [esp + 0x54], xmm5
movss dword [esp + 0x58], xmm1
movss dword [esp + 0x5c], xmm4
movss dword [esp + 0x60], xmm3
movss xmm0, dword [esi + 0x248]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x250]
movss dword [esp + 0x20], xmm0
test dl, dl
je 0x1003915e
mov eax, dword [esi + 0x238]
mov dword [esi + 0x248], eax
mov eax, dword [esi + 0x240]
mov dword [esi + 0x250], eax
mov edi, dword [esp + 0x2c]
mov eax, ecx
shr eax, 3
lea ecx, [esp + 0x54]
and eax, 0xffffff01
mov edx, edi
mov dword [esp + 0x1c], eax
movzx eax, al
shl eax, 2
push eax
push 0
call fcn.10010b07
cmp byte [esp + 0x2c], 0
pop ecx
pop ecx
je 0x100391a9
movss xmm0, dword [esp + 0x18]
movss dword [esi + 0x248], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esi + 0x250], xmm0
test al, al
je 0x100394e5
mov eax, dword [ebx + 0x478c]
shr eax, 2
and eax, 0xffffff01
cmp byte [esp + 0x1c], 0
mov dword [esp + 0x18], eax
je 0x100391d3
test al, al
jne 0x100391d3
call fcn.1000e362
cmp byte [esp + 0x24], 0
je 0x100391f8
cmp dword [esi + 0x1c8], 0
je 0x100391ea
call fcn.100303fa
jmp 0x100391f8
cmp dword [ebx + 0x4b6c], 0
je 0x100391f8
call fcn.1002f9a6
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 8]
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x100000
and eax, 0x8000000
mov eax, dword [ebp + 8]
cmove edx, ecx
mov ecx, edx
or ecx, 0x10
and eax, 0x400000
mov eax, dword [ebp + 8]
cmove ecx, edx
mov edx, ecx
or edx, 0x80
and eax, 0x800000
mov eax, dword [ebp + 8]
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
and al, 4
cmove ecx, edx
test byte [ebp + 8], 0x10
jne 0x1003925c
test dword [ebx + 0x47b0], 0x200
je 0x10039262
or ecx, 0x1000
push ecx
lea eax, [esp + 0x1b]
mov edx, edi
push eax
lea eax, [esp + 0x1e]
push eax
lea ecx, [esp + 0x60]
call fcn.10030ff5
add esp, 0xc
mov dl, al
test dword [ebp + 8], 0x200000
mov byte [esp + 0x13], dl
je 0x100392b2
mov eax, dword [ebx + 0x4950]
test eax, eax
je 0x100392b2
mov ecx, dword [ebx + 0x4954]
cmp ecx, dword [ebx + 0x4788]
jne 0x100392b2
cmp eax, edi
jne 0x100392b2
mov dl, 1
mov byte [esp + 0x13], dl
mov byte [esp + 0x14], dl
jmp 0x100392db
mov cl, byte [esp + 0x15]
mov byte [esp + 0x14], cl
test dl, dl
jne 0x100392db
mov al, cl
cmp byte [esp + 0x16], dl
je 0x1003938b
test dword [ebp + 8], 0x2000000
mov byte [esp + 0x14], al
je 0x1003938b
cmp byte [ebx + 0x496f], 0
jne 0x1003936f
cmp dword [ebx + 0x4934], esi
jne 0x1003936f
mov eax, dword [esi + 0x180]
cmp dword [ebx + 0x4968], eax
jne 0x1003936f
movss xmm1, dword [esi + 0x138]
lea ecx, [esp + 0x3c]
movss xmm0, dword [esp + 0x54]
mov edx, eax
movss xmm2, dword [esi + 0x13c]
subss xmm0, xmm1
push ecx
push dword [ebx + 0x4788]
mov ecx, edi
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x60]
subss xmm0, xmm2
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x64]
subss xmm0, xmm1
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, xmm2
movss dword [esp + 0x50], xmm0
call fcn.1001268d
mov dl, byte [esp + 0x1b]
pop ecx
pop ecx
mov byte [ebx + 0x496e], 1
test dl, dl
je 0x1003937a
mov ecx, edi
call fcn.100063ce
mov al, byte [esp + 0x14]
cmp al, byte [esp + 0x15]
je 0x1003938b
or dword [ebx + 0x47b4], 8
mov dl, byte [esp + 0x16]
test dl, dl
jne 0x10039397
test al, al
je 0x1003940d
cmp byte [esp + 0x17], 0
je 0x100393a7
test dl, dl
je 0x100393a7
push 0x1a
pop ecx
jmp 0x100393b1
xor ecx, ecx
test dl, dl
setne cl
add ecx, 0x18
mov eax, dword [0x1022d548]
lea esi, [ecx + 0xe]
shl esi, 4
lea edi, [esp + 0x3c]
add eax, 0x382c
add esi, eax
push ecx
and dword [esp], 0
lea ecx, [esp + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [esp + 0x4c]
mulss xmm0, dword [eax]
movss dword [esp + 0x4c], xmm0
call fcn.10003a11
push dword [esp + 0x64]
xor dl, dl
mov ecx, eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.100050c4
mov esi, dword [esp + 0x44]
add esp, 0x14
mov edi, dword [esp + 0x2c]
push 0xa
mov edx, edi
lea ecx, [esp + 0x58]
call fcn.10005347
cmp byte [esp + 0x28], 0
pop ecx
je 0x1003947a
cmp dword [esi + 0x1c8], 0
je 0x10039432
call fcn.1003044a
jmp 0x1003947a
cmp dword [ebx + 0x4b6c], 0
je 0x1003947a
mov eax, dword [0x1022d548]
mov ebx, dword [eax + 0x4b6c]
mov edi, dword [eax + 0x3f34]
mov ecx, edi
imul esi, dword [ebx + 0x48], 0x70
lea edx, [ebx + 0x13c]
add esi, dword [ebx + 0x10]
call fcn.1003026f
movzx eax, word [esi + 0x5c]
mov ecx, dword [ebx + 0x160]
push eax
push dword [edi + 0x2a4]
call fcn.1002858c
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0x54]
push eax
lea eax, [ebx + 0x38cc]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push dword [esp + 0x60]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x80]
call fcn.10004d8b
add esp, 0x14
cmp byte [esp + 0x13], 0
je 0x100394cc
mov eax, dword [esp + 0x30]
test dword [eax + 0xc], 0x4000000
je 0x100394cc
test byte [ebp + 8], 1
jne 0x100394cc
test byte [ebx + 0x47b0], 0x20
jne 0x100394cc
call fcn.10011d7a
cmp byte [esp + 0x1c], 0
je 0x100394df
cmp byte [esp + 0x18], 0
jne 0x100394df
call fcn.1000e3b9
mov al, byte [esp + 0x13]
jmp 0x100394e7
xor al, al
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1004676c
mov esp, ebp
pop ebp
ret