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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
push ebx
push esi
push edi
mov edi, dword [0x100d83e0]
mov esi, ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
mov eax, dword [edi + 0x198c]
mov byte [eax + 0x7c], 1
mov eax, dword [edi + 0x198c]
mov dword [esp + 0x48], eax
cmp byte [eax + 0x7f], 0
jne 0x10042fbd
mov ecx, dword [eax + 0x1c0]
xor edx, edx
mov eax, dword [eax + 0x1c8]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.100200b0
mov ebx, eax
add esp, 4
cmp dword [edi + 0x19ac], ebx
jne 0x10042999
mov dword [edi + 0x19b4], ebx
cmp dword [edi + 0x19b0], ebx
jne 0x100429a8
mov byte [edi + 0x19c0], 1
mov esi, dword [edi + 0x198c]
xorps xmm1, xmm1
movss xmm2, dword [esi + 0x16c]
comiss xmm1, xmm2
jbe 0x10042a32
movss xmm3, dword [esi + 0xc8]
movss xmm1, dword [esi + 0x214]
mov ecx, dword [esi + 0x1bc]
subss xmm3, dword [esi + 0xc]
subss xmm1, dword [esi + 0xc]
test ecx, ecx
je 0x10042a1b
mov edx, dword [ecx + 0xc]
movss xmm0, dword [ecx + 0x14]
lea eax, [edx + 1]
test eax, eax
cmovns edx, eax
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esi + 0x1bc]
movss xmm1, dword [edx + 0x18]
mov eax, dword [edx + 0x34]
subss xmm1, xmm0
mulss xmm1, dword [eax + ecx*4]
addss xmm1, xmm0
subss xmm1, dword [esi + 0x3c]
subss xmm1, xmm3
addss xmm1, xmm2
movss xmm2, dword [0x100c4bc8]
maxss xmm2, xmm1
xorps xmm1, xmm1
mov edx, dword [esp + 0x64]
mov eax, edx
cvttss2si esi, xmm2
cmp edx, 0xffffffff
jae 0x10042a57
mov cl, byte [eax]
test cl, cl
je 0x10042a57
cmp cl, 0x23
jne 0x10042a51
cmp byte [eax + 1], cl
je 0x10042a57
inc eax
cmp eax, 0xffffffff
jb 0x10042a41
movss xmm0, dword [edi + 0x18ac]
cmp edx, eax
jne 0x10042a68
movaps xmm7, xmm1
jmp 0x10042ab0
movss xmm3, dword [0x100c4f20]
movaps xmm2, xmm0
push ecx
push eax
push edx
push ecx
mov ecx, dword [edi + 0x18a8]
lea eax, [esp + 0x50]
mov dword [esp], 0xbf800000
push eax
call fcn.1003d280
movss xmm0, dword [esp + 0x40]
xorps xmm1, xmm1
addss xmm0, dword [0x100c4bc0]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x44]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
comiss xmm7, xmm1
mov eax, dword [esp + 0x48]
movss xmm6, dword [edi + 0x1538]
movss xmm4, dword [eax + 0xc8]
subss xmm0, xmm6
movd xmm3, esi
movaps xmm2, xmm4
addss xmm4, dword [0x100c4c50]
cvtdq2ps xmm3, xmm3
mov esi, eax
movss dword [esp + 0x68], xmm7
subss xmm0, dword [0x100c4c5c]
movss xmm5, dword [esi + 0xcc]
addss xmm2, xmm3
movaps xmm3, xmm5
movss dword [esp + 0x50], xmm4
addss xmm3, xmm0
movss xmm0, dword [0x100c4f48]
subss xmm0, xmm6
movss dword [esp + 0x58], xmm2
movss dword [esp + 0x5c], xmm3
addss xmm5, xmm0
movss dword [esp + 0x54], xmm5
jbe 0x10042b38
movss xmm0, dword [edi + 0x154c]
addss xmm0, xmm7
jmp 0x10042b3b
movaps xmm0, xmm1
addss xmm3, xmm1
movss dword [esp + 0x70], xmm4
addss xmm2, xmm0
movss dword [esp + 0x74], xmm5
movaps xmm1, xmm6
lea ecx, [esp + 0x40]
movss dword [esp + 0x7c], xmm3
subss xmm3, xmm5
movss dword [esp + 0x78], xmm2
subss xmm2, xmm4
movss dword [esp + 0x44], xmm3
movss dword [esp + 0x40], xmm2
call fcn.100224b0
lea eax, [esp + 0x50]
mov edx, ebx
push eax
lea ecx, [esp + 0x74]
call fcn.100225c0
add esp, 4
test al, al
je 0x10042fbd
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x10042bad
mov eax, dword [esp + 0x60]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x100c0744]
jmp 0x10042bf1
cmp dword [esp + 0x60], 0
jne 0x10042bf4
mov ecx, 0x100c26c8
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10042be0
test dl, dl
je 0x10042bdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10042be0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10042bc0
xor eax, eax
jmp 0x10042be5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10042bf4
mov ecx, dword [ebp + 0x14]
call fcn.10041e80
mov dword [ebp + 0x14], eax
push 1
mov edx, ebx
mov ecx, esi
call fcn.100228c0
add esp, 4
mov byte [esp + 0x3f], al
mov edx, ebx
lea ecx, [esp + 0x50]
call fcn.10022760
cmp byte [esp + 0x3f], 0
jne 0x10042c3d
test al, al
je 0x10042c25
cmp byte [edi + 0x3d0], 0
jne 0x10042c3d
cmp dword [edi + 0x1aa4], ebx
je 0x10042c3d
cmp dword [edi + 0x1ab0], ebx
jne 0x10042c80
cmp dword [edi + 0x2c60], ebx
je 0x10042c80
mov edx, esi
mov ecx, ebx
call fcn.100222e0
call fcn.10022390
mov ecx, esi
call fcn.1002a3c0
cmp byte [esp + 0x3f], 0
mov dword [edi + 0x19c4], 0xc
jne 0x10042f69
cmp byte [edi + 0xf8], 0
jne 0x10042f69
cmp dword [edi + 0x1ab0], ebx
je 0x10042f69
mov eax, dword [edi + 0x19ac]
cmp eax, ebx
jne 0x10042ca1
cmp dword [edi + 0x2c60], ebx
je 0x10042f73
cmp eax, ebx
jne 0x10042ca1
mov ecx, 9
jmp 0x10042caf
xor ecx, ecx
cmp dword [edi + 0x1998], ebx
sete cl
add ecx, 7
movss xmm1, dword [0x100c4bc8]
call fcn.10020880
push 1
mov edx, ebx
lea ecx, [esp + 0x54]
mov esi, eax
call fcn.100214c0
movss xmm2, dword [edi + 0x153c]
add esp, 4
mov dl, 1
mov ecx, esi
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call fcn.10020fa0
movaps xmm0, xmmword [0x100c57d0]
lea eax, [esp + 0x80]
mov esi, dword [ebp + 0x14]
lea ecx, [esp + 0x60]
add esp, 0x10
mov edx, ebx
movups xmmword [esp + 0x70], xmm0
movss xmm0, dword [ebp + 0x18]
push eax
sub esp, 8
movss dword [esp], xmm0
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x7c]
call fcn.100427c0
add esp, 0x20
mov byte [esp + 0x3f], al
test al, al
je 0x10042d54
mov ecx, dword [0x100d83e0]
mov byte [ecx + 0x19bf], 1
mov ecx, dword [ecx + 0x198c]
or dword [ecx + 0x110], 4
movss xmm0, dword [esp + 0x78]
lea eax, [esp + 0x40]
addss xmm0, dword [0x100c4ac8]
movss xmm1, dword [edi + 0x1570]
mov ebx, dword [esp + 0x48]
push 0xf
push ecx
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x84]
addss xmm0, dword [0x100c4c04]
mov ecx, dword [ebx + 0x274]
movss dword [esp], xmm1
push 0xffc8c8c8
push eax
lea eax, [esp + 0x60]
movss dword [esp + 0x54], xmm0
push eax
call fcn.1003a5d0
mov ebx, dword [ebx + 0x274]
lea eax, [esp + 0x40]
movss xmm0, dword [esp + 0x58]
xorps xmm3, xmm3
push 0xf
push eax
test byte [ebx + 0x24], 1
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
je 0x10042e0e
movss xmm1, dword [0x100c4b74]
subss xmm0, xmm1
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x60]
addss xmm0, xmm1
jmp 0x10042e52
subss xmm0, dword [0x100c4b70]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, dword [0x100c4b70]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, dword [0x100c4b74]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x60]
addss xmm0, dword [0x100c4b74]
movss dword [esp + 0x58], xmm0
call fcn.1003a0c0
push ecx
mov dword [esp], 0x3f800000
mov ecx, ebx
push 1
push 0xff000000
push dword [ebx + 0x54]
push dword [ebx + 0x5c]
call fcn.10038f00
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x54], 0
test eax, eax
je 0x10042eb4
cmp eax, 4
jne 0x10042ecc
mov eax, dword [ebp + 8]
sub esp, 8
movss xmm0, dword [eax]
lea eax, [esp + 0x88]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push esi
push 0x40
push eax
call fcn.10020070
add esp, 0x14
jmp 0x10042ecc
mov eax, dword [ebp + 8]
push dword [eax]
lea eax, [esp + 0x84]
push esi
push 0x40
push eax
call fcn.10020070
add esp, 0x10
movups xmm1, xmmword [esp + 0x70]
xor edx, edx
lea ecx, [esp + 0x80]
movaps xmm0, xmm1
shufps xmm1, xmm1, 0x55
subss xmm1, dword [0x100c4ac8]
subss xmm0, dword [0x100c4c50]
movss dword [esp + 0x4c], xmm1
push dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm0
push dword [esp + 0x4c]
push 1
call fcn.10020b10
movss xmm0, dword [esp + 0x74]
add esp, 0xc
comiss xmm0, dword [0x100c4ac8]
jbe 0x10042f5e
movss xmm0, dword [edi + 0x154c]
xor edx, edx
addss xmm0, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x54]
subss xmm0, dword [0x100c4c40]
movss dword [esp + 0x6c], xmm0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push 1
call fcn.10020b10
add esp, 0xc
mov al, byte [esp + 0x3f]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edi + 0x2c60], 0
push dword [ebp + 0x14]
movss xmm0, dword [esp + 0x54]
lea ecx, [esp + 0x54]
push dword [ebp + 8]
dec dword [esi + 0x328]
dec dword [esi + 0x32c]
push dword [esp + 0x68]
movss dword [esi + 0xc8], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [esi + 0xcc], xmm0
mov esi, dword [esp + 0x70]
push esi
call fcn.10043160
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret