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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x466040]
xor eax, esp
mov dword [esp + 0x84], eax
push esi
push edi
mov edi, dword [0x466af0]
mov al, dl
mov byte [esp + 0x16], al
mov byte [esp + 0x48], al
mov dword [esp + 0x24], ecx
mov eax, dword [edi + 0x12c4]
mov byte [eax + 0xbc], 1
mov esi, dword [edi + 0x12c4]
mov dword [esp + 0x3c], esi
cmp byte [esi + 0xbf], 0
jne 0x440118
mov ecx, dword [esi + 0xf4]
xor edx, edx
mov eax, dword [esi + 0xfc]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x28]
call fcn.004025e0
mov ecx, dword [esi]
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [ecx + 0x1304], eax
jne 0x43f844
push ecx
push dword [esp + 0x28]
mov edx, 0xc
mov ecx, eax
call fcn.0041b540
add esp, 8
mov eax, dword [esp + 0x24]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x43f866
nop
mov dl, byte [ecx]
test dl, dl
je 0x43f866
cmp dl, 0x23
jne 0x43f860
cmp byte [ecx + 1], dl
je 0x43f866
inc ecx
cmp ecx, 0xffffffff
jb 0x43f850
mov edx, dword [0x466af0]
xorps xmm0, xmm0
movss xmm1, dword [edx + 0x1014]
cmp eax, ecx
jne 0x43f880
xorps xmm2, xmm2
jmp 0x43f8c9
movss xmm3, dword [0x460700]
movaps xmm2, xmm1
push 0
push ecx
push eax
push ecx
mov ecx, dword [edx + 0x1010]
lea eax, [esp + 0x44]
mov dword [esp], 0xbf800000
push eax
call fcn.0042b210
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x46063c]
movss xmm1, dword [esp + 0x38]
cvttss2si eax, xmm0
xorps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov ecx, dword [ebp + 0xc]
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x40], xmm2
movss xmm3, dword [ecx + 4]
ucomiss xmm3, xmm0
movss dword [esp + 0x1c], xmm3
lahf
test ah, 0x44
jp 0x43f8f5
movaps xmm3, xmm1
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [ecx]
ucomiss xmm1, xmm0
movss dword [esp + 0x28], xmm1
lahf
test ah, 0x44
jp 0x43f911
movaps xmm1, xmm2
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x34], xmm1
lea ecx, [esp + 0x34]
movss xmm1, dword [esi + 0x100]
movss dword [esp + 0x50], xmm1
movss xmm1, dword [esi + 0x104]
addss xmm1, dword [esi + 0x138]
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x2c], xmm1
xorps xmm1, xmm1
call fcn.00413ef0
mov ecx, dword [ebp + 8]
mov edx, ecx
movss xmm2, dword [esp + 0x50]
shr edx, 1
and dl, 1
mov dword [esp + 0x30], edx
je 0x43f975
movss xmm6, dword [esi + 0x214]
movss xmm1, dword [esi + 0x21c]
jmp 0x43f980
movss xmm1, dword [esi + 0x20c]
movaps xmm6, xmm2
mov eax, dword [ebp + 0xc]
xorps xmm4, xmm4
movss xmm0, dword [eax]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x43f99b
test ecx, 0x1000000
je 0x43f9ab
movss xmm5, dword [esp + 0x40]
subss xmm1, xmm6
maxss xmm5, xmm1
jmp 0x43f9b1
movss xmm5, dword [esp + 0x28]
movss xmm7, dword [esp + 0x2c]
addss xmm5, xmm6
movss dword [esp + 0x68], xmm2
movaps xmm0, xmm7
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x58], xmm6
movss dword [esp + 0x5c], xmm7
movss dword [esp + 0x84], xmm5
movss dword [esp + 0x60], xmm5
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x64], xmm0
test ecx, 0x4000000
jne 0x43fa7a
test dl, dl
jne 0x43fa14
movss xmm4, dword [edi + 0xbd8]
movss xmm3, dword [edi + 0xbdc]
movaps xmm0, xmm4
mulss xmm0, dword [0x46060c]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x46060c]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm6, xmm2
subss xmm7, xmm0
addss xmm4, xmm5
addss xmm3, dword [esp + 0x2c]
movss dword [esp + 0x58], xmm6
movss dword [esp + 0x5c], xmm7
movss dword [esp + 0x60], xmm4
movss dword [esp + 0x64], xmm3
mov eax, ecx
shr eax, 3
and eax, 0xffffff01
movzx ecx, al
shl ecx, 0xa
test dl, dl
mov edx, dword [esp + 0x18]
push ecx
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x5c]
push 0
je 0x43fafa
movss xmm0, dword [esi + 0x224]
mov eax, dword [esi + 0x214]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esi + 0x22c]
mov dword [esi + 0x224], eax
mov eax, dword [esi + 0x21c]
movss dword [esp + 0x30], xmm0
mov dword [esi + 0x22c], eax
call fcn.00413c00
movss xmm0, dword [esp + 0x24]
mov cl, al
movss dword [esi + 0x224], xmm0
movss xmm0, dword [esp + 0x30]
mov byte [esp + 0x1f], cl
movss dword [esi + 0x22c], xmm0
jmp 0x43fb05
call fcn.00413c00
mov cl, al
mov byte [esp + 0x1f], al
mov eax, dword [edi + 0x1c64]
add esp, 8
shr eax, 0x16
and eax, 0xffffff01
mov dword [esp + 0x28], eax
test cl, cl
jne 0x43fb7e
test al, al
je 0x440118
cmp byte [edi + 0x2104], cl
je 0x440118
movss xmm0, dword [edi + 0x2114]
comiss xmm0, dword [esp + 0x5c]
jbe 0x440118
movss xmm0, dword [esp + 0x64]
comiss xmm0, dword [edi + 0x210c]
jbe 0x440118
movss xmm0, dword [edi + 0x2110]
comiss xmm0, dword [esp + 0x58]
jbe 0x440118
movss xmm0, dword [esp + 0x60]
comiss xmm0, dword [edi + 0x2108]
jbe 0x440118
mov eax, dword [edi + 0x1c20]
shr eax, 0xa
and eax, 0xffffff01
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x34], eax
je 0x43fba0
test al, al
jne 0x43fba0
call fcn.00410610
cmp byte [esp + 0x30], 0
je 0x43fbdd
cmp dword [edi + 0x204c], 0
je 0x43fbb7
call fcn.00431450
jmp 0x43fbc5
cmp dword [esi + 0x1a0], 0
je 0x43fbc5
call fcn.00433b40
or dword [edi + 0x1c68], 0x200
movups xmm0, xmmword [esi + 0x224]
movups xmmword [edi + 0x1c9c], xmm0
mov edx, dword [ebp + 8]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x50], eax
test edx, 0x100000
je 0x43fbfb
mov eax, 0x20000
mov dword [esp + 0x50], eax
mov ecx, eax
test edx, 0x8000000
je 0x43fc10
mov eax, ecx
or eax, 0x100000
mov dword [esp + 0x50], eax
mov ecx, eax
test edx, 0x400000
je 0x43fc23
mov eax, ecx
or eax, 0x10
mov dword [esp + 0x50], eax
mov ecx, eax
test edx, 0x800000
je 0x43fc38
mov eax, ecx
or eax, 0x80
mov dword [esp + 0x50], eax
mov ecx, eax
test dl, 4
je 0x43fc48
mov eax, ecx
or eax, 0x120
mov dword [esp + 0x50], eax
test dl, 0x10
jne 0x43fc59
test dword [edi + 0x1c64], 0x4000
je 0x43fc62
or eax, 0x1000
mov dword [esp + 0x50], eax
cmp byte [esp + 0x28], 0
mov cl, byte [esp + 0x16]
mov byte [esp + 0x23], cl
je 0x43fe74
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0x4c]
call fcn.00440cd0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x53]
add esp, 4
lea ecx, [esp + 0x58]
push dword [esp + 0x50]
push eax
lea eax, [esp + 0x56]
push eax
call fcn.004357d0
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x54]
add esp, 0xc
mov byte [esp + 0x15], al
lea eax, [esp + 0x15]
push eax
call fcn.00440de0
mov al, byte [esp + 0x19]
add esp, 4
mov cl, byte [esp + 0x48]
mov byte [esp + 0x15], al
mov eax, dword [ebp + 8]
mov byte [esp + 0x16], cl
mov edx, dword [esp + 0x18]
cmp byte [esp + 0x15], 0
jne 0x43fcf5
cmp byte [esp + 0x4e], 0
je 0x43fe3f
test eax, 0x2000000
je 0x43fe3f
cmp byte [edi + 0x1d99], 0
jne 0x43fe07
cmp dword [edi + 0x1da0], esi
jne 0x43fe07
mov eax, dword [esi + 0x158]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x1da8], eax
jne 0x43fe07
movss xmm1, dword [esi + 0x110]
movss xmm0, dword [esp + 0x58]
movss xmm2, dword [esi + 0x114]
subss xmm0, xmm1
mov esi, dword [0x466af0]
mov ecx, dword [edi + 0x1c1c]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x5c]
subss xmm0, xmm2
movss dword [esp + 0x74], xmm0
movss xmm0, dword [esp + 0x60]
subss xmm0, xmm1
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x64]
subss xmm0, xmm2
mov dword [esi + 0x1d9c], edx
mov dword [esi + 0x1da8], eax
movss dword [esp + 0x7c], xmm0
call fcn.00410930
mov eax, dword [esi + 0x1da0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
movups xmm0, xmmword [esp + 0x70]
mov dword [eax + edx*4 + 0x348], ecx
lea eax, [edx + 0x35]
mov edx, dword [0x466af0]
shl eax, 4
add eax, dword [esi + 0x1da0]
movups xmmword [eax], xmm0
mov eax, dword [edx + 0x1da0]
mov ecx, dword [edx + 0x1da8]
mov eax, dword [eax + 0x33c]
mov dword [eax + ecx*8 + 0x370], 0x7f7fffff
mov eax, dword [edx + 0x1da0]
mov ecx, dword [edx + 0x1da8]
mov eax, dword [eax + 0x33c]
mov dword [eax + ecx*8 + 0x374], 0x7f7fffff
cmp byte [edi + 0x49], 0
je 0x43fe07
mov byte [edi + 0x1d98], 0
cmp byte [esp + 0x15], 0
je 0x43fe3f
mov eax, dword [0x466af0]
test dword [eax + 0x1c64], 0x10000
jne 0x43fe3f
mov ecx, dword [eax + 0x1320]
cmp ecx, dword [esp + 0x18]
je 0x43fe2f
test ecx, ecx
jne 0x43fe38
mov word [eax + 0x1330], 0x101
or dword [eax + 0x1c68], 4
mov cl, byte [esp + 0x16]
cmp cl, byte [esp + 0x23]
je 0x43fe50
or dword [edi + 0x1c68], 8
cmp byte [esp + 0x17], 0
je 0x43ff88
cmp byte [esp + 0x4e], 0
jne 0x43fedf
test byte [ebp + 8], 0x20
jne 0x43fedf
xor al, al
test cl, cl
je 0x43ff5f
jmp 0x43fee1
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x58]
push eax
lea eax, [esp + 0x53]
push eax
lea eax, [esp + 0x56]
push eax
call fcn.004357d0
mov byte [esp + 0x21], al
add esp, 0xc
mov eax, dword [ebp + 8]
test eax, 0x200000
je 0x43fcd4
cmp dword [edi + 0x1f54], 0
mov edx, dword [esp + 0x18]
je 0x43fcd8
mov ecx, dword [edi + 0x1f58]
cmp ecx, dword [edi + 0x1c1c]
jne 0x43fcd8
cmp dword [edi + 0x1f54], edx
jne 0x43fcd8
mov byte [esp + 0x15], 1
mov byte [esp + 0x16], 1
jmp 0x43fcf5
mov al, 1
cmp byte [esp + 0x4f], 0
je 0x43fef6
test al, al
je 0x43fef6
mov dword [esp + 0x1c], 0x1a
jmp 0x43ff00
movzx eax, al
add eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
movss xmm1, dword [0x460644]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, dword [0x466af0]
push 0
push ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 0x12c4]
mov dword [esp + 0x7c], edx
mov dword [esp], 0
call fcn.00402da0
mov ecx, dword [esi + 0x278]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00427200
mov ecx, dword [esp + 0x18]
cmp dword [edi + 0x1d9c], ecx
jne 0x43ff88
mov eax, dword [esp + 0x28]
mov edx, ecx
movzx eax, al
lea ecx, [esp + 0x58]
lea eax, [eax*4 + 0xa]
push eax
call fcn.00403bf0
add esp, 4
cmp byte [esp + 0x30], 0
je 0x43ffb1
cmp dword [edi + 0x204c], 0
je 0x43ff9f
call fcn.00431510
jmp 0x43ffb1
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x1a0], 0
je 0x43ffb1
call fcn.00433bf0
cmp byte [esp + 0x17], 0
je 0x44004d
mov edx, dword [esp + 0x24]
mov ecx, edx
mov dword [esp + 0x30], ecx
cmp edx, 0xffffffff
jae 0x43ffee
nop dword [eax + eax]
mov dl, byte [ecx]
test dl, dl
je 0x43ffe6
cmp dl, 0x23
jne 0x43ffe0
cmp byte [ecx + 1], dl
je 0x43ffe6
inc ecx
cmp ecx, 0xffffffff
jb 0x43ffd0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov eax, ecx
sub eax, edx
je 0x44004d
mov esi, dword [0x466af0]
lea eax, [esp + 0x58]
push eax
lea eax, [edi + 0xc40]
push eax
lea eax, [esp + 0x48]
push eax
push ecx
mov ecx, dword [esi + 0x12c4]
lea eax, [esp + 0x94]
push edx
push eax
lea edx, [esp + 0x80]
mov ecx, dword [ecx + 0x278]
call fcn.004030c0
add esp, 0x18
cmp byte [esi + 0x2408], 0
je 0x44004d
push dword [esp + 0x30]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x6c]
call fcn.00419f40
add esp, 4
cmp byte [esp + 0x15], 0
je 0x440075
mov eax, dword [esp + 0x3c]
test dword [eax + 0xc], 0x4000000
je 0x440075
test byte [ebp + 8], 1
jne 0x440075
test byte [edi + 0x1c64], 0x10
je 0x440075
call fcn.004151c0
cmp byte [esp + 0x2c], 0
je 0x440100
cmp byte [esp + 0x34], 0
jne 0x440100
mov esi, dword [0x466af0]
movzx eax, word [esi + 0x22f8]
test ax, ax
jg 0x4400bb
mov ecx, str.Calling_EndDisabled___too_many_times_
call fcn.004134a0
mov al, byte [esp + 0x15]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.00455124
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x1c20]
dec eax
dec dword [esi + 0x1d50]
mov ecx, dword [esi + 0x1d50]
mov word [esi + 0x22f8], ax
mov eax, dword [esi + 0x1d58]
shr edx, 0xa
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x1c20], eax
test dl, 1
je 0x440100
test eax, 0x400
jne 0x440100
mov eax, dword [esi + 0x22f4]
mov dword [esi + 0xb8c], eax
mov al, byte [esp + 0x15]
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.00455124
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x8c]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.00455124
mov esp, ebp
pop ebp
ret