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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x67c3c0]
xor eax, esp
mov dword [esp + 0x84], eax
mov ecx, dword [0x682080]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x1b94]
push esi
push edi
mov dword [esp + 0x38], edx
mov byte [eax + 0x8c], 1
mov edi, dword [ecx + 0x1b94]
mov dword [esp + 0x40], edi
cmp byte [edi + 0x8f], 0
je 0x43ca26
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.0059a5ad
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov ecx, eax
mov esi, dword [0x682080]
shr ecx, 1
and cl, 1
mov dword [esp + 0x34], ecx
jne 0x43ca63
test eax, 0x400
jne 0x43ca63
movss xmm1, dword [esi + 0x1550]
movss xmm0, dword [edi + 0x104]
minss xmm0, dword [esi + 0x1554]
movss dword [esp + 0x20], xmm1
jmp 0x43ca79
movss xmm0, dword [esi + 0x1550]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esi + 0x1554]
movss dword [esp + 0x24], xmm0
test edx, edx
jne 0x43ca96
push edx
push dword [esp + 0x30]
call fcn.0040d8b0
add esp, 8
mov dword [esp + 0x38], eax
mov edx, eax
push ecx
mov dword [esp], 0xbf800000
lea eax, [esp + 0x6c]
push 0
push edx
push dword [esp + 0x38]
push eax
call fcn.0040b100
movss xmm0, dword [esi + 0x1554]
add esp, 0x14
test dword [ebp + 0xc], 0x1000
addss xmm0, xmm0
movss xmm4, dword [edi + 0xf8]
xorps xmm1, xmm1
movss xmm3, dword [esp + 0x24]
movss xmm7, dword [0x5cc008]
addss xmm0, dword [esi + 0x1930]
mov dword [esp + 0x50], 0
minss xmm4, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm7
addss xmm0, dword [esp + 0x6c]
maxss xmm4, xmm0
je 0x43cb0f
movss xmm2, dword [edi + 0x214]
jmp 0x43cb17
movss xmm2, dword [edi + 0xcc]
cmp byte [esp + 0x34], 0
movss xmm6, dword [0x5cbfc4]
movss dword [esp + 0x50], xmm2
movss xmm0, dword [edi + 0xd0]
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm4
movss xmm5, dword [edi + 0x21c]
movss dword [esp + 0x58], xmm5
addss xmm0, dword [edi + 0xd0]
movss dword [esp + 0x5c], xmm0
je 0x43cbad
movss xmm0, dword [edi + 0x3c]
mulss xmm0, xmm6
subss xmm0, dword [0x5cbff0]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm2, xmm0
movss dword [esp + 0x50], xmm2
movss xmm0, dword [edi + 0x3c]
mulss xmm0, xmm6
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm5
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x5cc010]
jmp 0x43cbb7
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm7
movss xmm6, dword [esi + 0x1930]
movaps xmm2, xmm3
movss xmm5, dword [esp + 0x68]
addss xmm0, xmm6
comiss xmm5, xmm1
maxss xmm2, dword [edi + 0x104]
movss dword [esp + 0x28], xmm0
jbe 0x43cbed
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm7
addss xmm1, xmm5
addss xmm2, dword [edi + 0xd0]
addss xmm0, dword [edi + 0xcc]
addss xmm1, xmm6
movss dword [esp + 0x14], xmm4
push ecx
lea eax, [esp + 0x14]
movss dword [esp], xmm3
push eax
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x54], xmm2
movss dword [esp + 0x18], xmm1
call fcn.00410500
movaps xmm0, xmmword [esp + 0x58]
add esp, 8
cmp byte [esp + 0x34], 0
mov eax, dword [ebp + 0xc]
movaps xmmword [esp + 0x70], xmm0
jne 0x43cc6f
test eax, 0x1800
jne 0x43cc6f
movss xmm0, dword [esi + 0x1560]
movss xmm1, dword [esp + 0x30]
addss xmm0, xmm0
addss xmm1, dword [esp + 0x50]
addss xmm0, xmm1
movss dword [esp + 0x78], xmm0
mov ecx, eax
mov dword [esp + 0x10], 1
shr ecx, 8
and ecx, 0xffffff01
mov dword [esp + 0x24], ecx
test eax, 0x100
je 0x43cc9c
mov byte [esp + 0xc], 1
mov byte [esp + 0xa], 1
jmp 0x43cd7d
mov ecx, dword [0x682080]
mov dword [esp + 0x30], ecx
test byte [ecx + 0x1c78], 2
mov edx, dword [ecx + 0x1b94]
mov dword [esp + 0x3c], edx
mov edx, dword [edx + 0x194]
mov dword [esp + 0x44], edx
je 0x43cd1f
test byte [ecx + 0x1c84], 1
je 0x43ccea
mov al, byte [ecx + 0x1c88]
mov ecx, edx
mov dword [esp + 0xc], eax
movzx eax, al
push eax
push dword [ebp + 8]
call fcn.00418d90
mov ecx, dword [esp + 0xc]
jmp 0x43cd39
push 0xffffffffffffffff
push dword [ebp + 8]
mov ecx, edx
call fcn.0040e270
cmp eax, 0xffffffff
jne 0x43cd30
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov al, byte [eax + 0x1c88]
mov dword [esp + 0xc], eax
movzx eax, al
push eax
push dword [ebp + 8]
call fcn.00418d90
mov ecx, dword [esp + 0xc]
jmp 0x43cd39
shr eax, 5
mov ecx, edx
and eax, 1
push eax
push dword [ebp + 8]
call fcn.0040e270
test eax, eax
setne cl
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
cmp byte [edx + 0x2ed8], 0
je 0x43cd75
test al, 0x10
jne 0x43cd75
mov eax, dword [esp + 0x3c]
movzx ecx, cl
mov eax, dword [eax + 0x180]
sub eax, dword [edx + 0x2f00]
cmp eax, dword [edx + 0x2f04]
mov eax, 1
cmovl ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], ecx
mov byte [esp + 0xa], cl
test cl, cl
je 0x43cda7
cmp byte [esi + 0x1d48], 0
jne 0x43cda7
and eax, 0x2008
cmp eax, 0x2000
jne 0x43cda7
mov ecx, dword [edi + 0x184]
mov eax, dword [edi + 0x180]
bts ecx, eax
mov dword [edi + 0x184], ecx
push 0
push dword [ebp + 8]
lea eax, [esp + 0x78]
push eax
call fcn.00410160
or dword [edi + 0x11c], 2
add esp, 0xc
movups xmm0, xmmword [esp + 0x50]
movups xmmword [edi + 0x130], xmm0
test al, al
jne 0x43ce09
mov eax, dword [esp + 0xc]
test al, al
je 0x43d332
test byte [ebp + 0xc], 8
jne 0x43d332
push dword [ebp + 8]
call fcn.0043d4f0
mov eax, dword [esp + 0x10]
add esp, 4
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.0059a5ad
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov eax, ecx
movss xmm1, dword [esp + 0x48]
and eax, 4
subss xmm1, dword [esp + 0x28]
movss xmm2, dword [esi + 0x1578]
movss xmm3, dword [esi + 0xe4]
mov dword [esp + 0x3c], eax
neg eax
sbb eax, eax
movaps xmm0, xmm1
and eax, 0x1000
subss xmm0, xmm2
mov edx, eax
or edx, 0x200
cmp byte [esp + 0x24], 0
cmovne edx, eax
comiss xmm3, xmm0
jb 0x43ce7d
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x5cc008]
addss xmm0, dword [esi + 0x1930]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x43ce7d
mov al, 1
jmp 0x43ce7f
xor al, al
mov byte [esp + 0xb], al
cmp edi, dword [esi + 0x1b98]
jne 0x43ce8f
test al, al
jne 0x43ce99
or edx, 0x10000
test al, al
je 0x43ce9e
or edx, 0x10
jmp 0x43ceae
test cl, 0x40
je 0x43ceab
or edx, 0x120
jmp 0x43ceae
or edx, 0x20
mov al, cl
and al, 1
mov byte [esp + 0x1f], al
lea eax, [esp + 0x1e]
push edx
push eax
lea eax, [esp + 0x25]
push eax
push dword [ebp + 8]
lea eax, [esp + 0x80]
push eax
call fcn.00431580
xor dl, dl
add esp, 0x14
cmp byte [esp + 0x24], dl
jne 0x43cfcc
mov ecx, dword [ebp + 8]
test al, al
je 0x43cf47
cmp dword [esi + 0x1eac], ecx
je 0x43cf37
mov eax, dword [ebp + 0xc]
test al, 0xc0
je 0x43cefe
cmp dword [esi + 0x1d04], ecx
jne 0x43cf00
mov dl, 1
test al, al
jns 0x43cf22
cmp byte [esp + 0xb], 0
je 0x43cf19
cmp byte [esi + 0x1d4b], 0
mov byte [esp + 0xb], 1
je 0x43cf1e
mov byte [esp + 0xb], 0
or dl, byte [esp + 0xb]
test al, 0x40
je 0x43cf47
cmp byte [esi + 0x3dd], 0
mov eax, dword [esp + 0xc]
je 0x43cf4b
mov dl, 1
jmp 0x43cf4b
mov eax, dword [esp + 0xc]
test al, al
movzx edx, dl
cmove edx, dword [esp + 0x10]
jmp 0x43cf4b
mov eax, dword [esp + 0xc]
cmp dword [esi + 0x1cfc], ecx
jne 0x43cfa5
cmp byte [esi + 0x1d64], 0
je 0x43cf7a
cmp dword [esi + 0x1d74], 0
jne 0x43cf7a
test al, al
je 0x43cf7a
mov byte [esp + 0x10], 1
call fcn.004114a0
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
cmp dword [esi + 0x1cfc], ecx
jne 0x43cfa5
cmp byte [esi + 0x1d64], 0
je 0x43cfa5
cmp dword [esi + 0x1d74], 1
jne 0x43cfa5
cmp byte [esp + 0xc], 0
jne 0x43cfa5
call fcn.004114a0
mov ecx, dword [ebp + 8]
jmp 0x43cfa9
test dl, dl
je 0x43cfcc
cmp byte [esp + 0xc], 0
sete al
mov byte [esp + 0xa], al
movzx eax, al
push eax
push ecx
mov ecx, dword [edi + 0x194]
call fcn.00418d90
or dword [edi + 0x11c], 0x10
cmp dword [esp + 0x3c], 0
je 0x43cfd8
call fcn.00418df0
push ecx
mov dword [esp], 0x3f800000
push 0
call fcn.0040de90
mov cl, byte [esp + 0x25]
add esp, 8
cmp byte [esp + 0x34], 0
mov edx, eax
mov dword [esp + 0xc], edx
je 0x43d1b0
cmp byte [esp + 0x1e], 0
je 0x43d011
test cl, cl
je 0x43d011
mov eax, 0x1a
jmp 0x43d01b
xor eax, eax
test cl, cl
setne al
add eax, 0x18
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.0040de90
movss xmm0, dword [esi + 0x1558]
add esp, 4
movss dword [esp], xmm0
push 1
push eax
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.00415f50
push 2
push dword [ebp + 8]
lea eax, [esp + 0x74]
push eax
call fcn.004161f0
mov edi, dword [ebp + 0xc]
add esp, 0x28
test edi, 0x200
je 0x43d0c8
movss xmm0, dword [esp + 0x28]
mulss xmm0, dword [0x5cbfc8]
mov eax, dword [esp + 0x40]
movss xmm1, dword [esp + 0x48]
push dword [esp + 0xc]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x5cbfc4]
addss xmm0, dword [esp + 0x50]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm0
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [eax + 0x288]
call fcn.00421320
add esp, 0x10
jmp 0x43d132
cmp byte [esp + 0x24], 0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x28]
jne 0x43d12c
addss xmm0, dword [esp + 0x20]
xor eax, eax
cmp byte [esp + 0xa], al
push ecx
setne al
mov dword [esp], 0x3f800000
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 0x18], xmm0
lea eax, [eax*2 + 1]
push eax
push dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [eax + 0x288]
call fcn.00421170
add esp, 0x18
jmp 0x43d132
movss dword [esp + 0x48], xmm0
test edi, 0x100000
je 0x43d15a
movss xmm1, dword [esi + 0x1550]
addss xmm1, dword [esi + 0x1930]
movss xmm0, dword [esp + 0x58]
subss xmm0, xmm1
movss dword [esp + 0x58], xmm0
cmp byte [esi + 0x2ed8], 0
je 0x43d175
push 0x5cbed0
push 0x5cbed0
call fcn.00410a80
add esp, 8
push 0
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
lea eax, [esp + 0x70]
mov dword [esp + 0x1c], 0
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x68]
push dword [esp + 0x3c]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00416550
add esp, 0x1c
jmp 0x43d315
test cl, cl
jne 0x43d1ba
cmp byte [esp + 0x1f], cl
je 0x43d21c
cmp byte [esp + 0x1e], 0
je 0x43d1cc
test cl, cl
je 0x43d1cc
mov eax, 0x1a
jmp 0x43d1d6
xor eax, eax
test cl, cl
setne al
add eax, 0x18
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.0040de90
add esp, 4
mov dword [esp], 0
push 0
push eax
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.00415f50
push 2
push dword [ebp + 8]
lea eax, [esp + 0x74]
push eax
call fcn.004161f0
mov edx, dword [esp + 0x34]
add esp, 0x28
test dword [ebp + 0xc], 0x200
je 0x43d278
movss xmm0, dword [esp + 0x28]
mulss xmm0, dword [0x5cbfc4]
push edx
movss xmm1, dword [esp + 0x4c]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x5cbfc4]
addss xmm0, dword [esp + 0x50]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm0
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [edi + 0x288]
call fcn.00421320
add esp, 0x10
jmp 0x43d2e3
cmp byte [esp + 0x24], 0
jne 0x43d2e3
movss xmm0, dword [esi + 0x1930]
xor eax, eax
cmp byte [esp + 0xa], al
movss xmm1, dword [esp + 0x48]
mulss xmm0, dword [0x5cbfb0]
setne al
push ecx
subss xmm1, dword [esp + 0x2c]
mov dword [esp], 0x3f333333
addss xmm0, dword [esp + 0x50]
lea eax, [eax*2 + 1]
push eax
addss xmm1, dword [esp + 0x28]
push edx
movss dword [esp + 0x20], xmm0
push dword [esp + 0x20]
movss dword [esp + 0x20], xmm1
push dword [esp + 0x20]
push dword [edi + 0x288]
call fcn.00421170
add esp, 0x18
cmp byte [esi + 0x2ed8], 0
je 0x43d2fb
push 0
push 0x5cbf64
call fcn.00410a80
add esp, 8
push 0
push dword [esp + 0x3c]
push dword [esp + 0x34]
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.00416470
add esp, 0x14
mov al, byte [esp + 0xa]
test al, al
je 0x43d332
test byte [ebp + 0xc], 8
jne 0x43d332
push dword [ebp + 8]
call fcn.0043d4f0
mov al, byte [esp + 0xe]
add esp, 4
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
xor ecx, esp
call fcn.0059a5ad
mov esp, ebp
pop ebp
ret