Function at 0x439a90
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x94
push ebx
push esi
push edi
mov esi, ecx
call fcn.0042f3c0
test eax, eax
je 0x439ae9
mov al, byte [esi + 9]
cmp al, 0x16
je 0x439ab5
cmp al, 0x17
jne 0x439ab9
and dword [esi + 4], 0xfffffffd
mov ecx, esi
call fcn.00432220
push 1
xor eax, eax
mov ax, word [esi + 0x2b0]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 5
mov ecx, esi
push eax
call fcn.0041d590
mov byte [esi + 9], 0x14
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x6f2234]
mov eax, dword [ecx + 0x350]
xor edi, edi
cmp eax, edi
je 0x439b1c
mov al, byte [esi + 0x95d]
test al, al
je 0x439b1c
cmp dword [esi + 0x94c], 2
je 0x439b1c
mov byte [esi + 0x95d], 0
mov byte [0x6d83c4], 0
lea edx, [esp + 0x60]
push edx
mov ecx, esi
call fcn.005efd90
movaps xmm2, xmmword [eax + 0x10]
movaps xmm1, xmmword [eax]
movaps xmm4, xmmword [eax + 0x30]
movaps xmm0, xmm1
shufps xmm0, xmm2, 0x44
shufps xmm1, xmm2, 0xee
movaps xmm2, xmmword [eax + 0x20]
cmp dword [0x76ba40], edi
movaps xmm3, xmm2
shufps xmm3, xmm4, 0x44
shufps xmm2, xmm4, 0xee
movaps xmm4, xmm0
shufps xmm4, xmm3, 0x88
shufps xmm0, xmm3, 0xdd
shufps xmm1, xmm2, 0x88
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x80], xmm1
je 0x439c03
mov ax, word [esi + 0xc]
cmp ax, 0xff51
jl 0x439b8a
cmp ax, 0xff69
jle 0x439c03
mov al, byte [esi + 0x211]
test al, al
jne 0x439c03
mov eax, dword [0x6f2234]
mov eax, dword [eax + 0x354]
cmp eax, edi
je 0x439c03
cmp byte [eax + 9], 4
jne 0x439c03
mov eax, dword [esi + 0xa20]
cmp dword [0x725b2c], eax
jbe 0x439c03
push 1
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, esi
call fcn.005efd30
mov ecx, dword [0x76ba40]
push eax
call fcn.00622520
mov ecx, eax
cmp ecx, edi
je 0x439bf5
fld dword [esp + 0x2c]
fcomp dword [0x68b714]
fnstsw ax
test ah, 5
jp 0x439bf5
push ecx
mov ecx, esi
call fcn.00402e80
mov eax, dword [0x725b2c]
add eax, 0x3c
mov dword [esi + 0xa20], eax
mov eax, dword [0x6f2234]
cmp dword [eax + 0x350], edi
je 0x439cd0
cmp dword [esi + 0x1d8], edi
je 0x439cd0
mov eax, dword [esi + 0x20c]
cmp eax, edi
lea ecx, [esi + 0x20c]
je 0x439cd0
cmp word [eax + 0xc], 0xffff
je 0x439cd0
test dword [eax + 4], 0xe0000000
je 0x439cd0
push edi
call fcn.00401a50
mov al, byte [esi + 0x206]
test al, al
mov dword [esi + 0xadc], edi
mov byte [esi + 0x208], 0
jne 0x439c73
mov al, byte [esi + 0x207]
test al, al
je 0x439c95
push esi
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push edi
push 0x3e
jmp 0x439cbe
mov eax, dword [esi + 0x1d8]
push eax
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push esi
push 0x5a24
lea ecx, [esp + 0x54]
mov dword [eax], edi
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0x1e
test cl, 1
mov ebx, bind
jne 0x439cfb
mov edx, eax
shr edx, 0x1c
test dl, 1
je 0x439dab
test eax, 0x20000
je 0x439dab
test al, 1
jne 0x439dab
mov al, byte [esi + 0x2b4]
test al, al
jne 0x439dab
mov eax, dword [esi + 0x1d8]
cmp eax, edi
je 0x439d59
test dword [eax + 4], ebx
jne 0x439d59
push eax
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
mov dword [eax], edi
push ecx
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push ecx
mov dword [eax], edi
mov eax, esp
push esi
push 0x7157
lea ecx, [esp + 0x54]
mov dword [eax], edi
call fcn.00401d20
mov ecx, eax
call fcn.00401d60
test eax, eax
jne 0x439dab
cmp dword [0x76ba40], edi
je 0x439d6b
mov eax, dword [0x725b2c]
add eax, 0x3c
jmp 0x439d9a
mov eax, dword [esi + 4]
shr eax, 0x1c
test al, 1
jne 0x439d8a
mov ecx, dword [0x6f2234]
mov al, byte [ecx + 0x1d0]
test al, al
mov eax, 0xc
je 0x439d8f
mov eax, 2
mov ecx, dword [0x725b2c]
imul eax, eax, 0x3c
add eax, ecx
mov byte [esi + 0x2b4], 1
mov dword [esi + 0x2b8], eax
or dword [esi + 4], 0x40
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [0x68b58c]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x1c], xmm0
movaps xmm1, xmmword [esp + 0x10]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm4, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm4, xmm3
addss xmm4, xmm2
movaps xmmword [esp + 0x10], xmm4
fld dword [esp + 0x10]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x50], xmm1
fnstsw ax
test ah, 0x41
jne 0x439e61
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x10], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x10]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x10], xmm1
lea eax, [esp + 0x10]
jmp 0x439e65
lea eax, [esp + 0x50]
movaps xmm0, xmmword [eax]
movaps xmm6, xmmword [esp + 0x80]
movaps xmm5, xmmword [esp + 0x70]
movaps xmm4, xmmword [esp + 0x60]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmm2, xmm6
mulps xmm2, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmm3, xmm5
mulps xmm3, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
addps xmm3, xmm2
movaps xmm0, xmm4
mulps xmm0, xmm1
addps xmm0, xmm3
movaps xmmword [esi + 0x750], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [0x68b58c]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x1c], xmm0
movaps xmm1, xmmword [esp + 0x10]
movaps xmm0, xmm1
mulps xmm0, xmm1
movaps xmm3, xmm0
movaps xmm2, xmm0
shufps xmm3, xmm0, 0x55
movaps xmm7, xmm0
shufps xmm2, xmm0, 0xaa
addss xmm7, xmm3
addss xmm7, xmm2
movaps xmmword [esp + 0x50], xmm7
fld dword [esp + 0x50]
fcomp dword [0x68b4fc]
movaps xmmword [esp + 0x30], xmm1
fnstsw ax
test ah, 0x41
jne 0x439f64
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xaa
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
addss xmm0, xmm3
addss xmm0, xmm2
movaps xmmword [esp + 0x10], xmm0
rsqrtss xmm0, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x10]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0
mulps xmm1, xmm2
movaps xmmword [esp + 0x50], xmm1
lea eax, [esp + 0x50]
jmp 0x439f68
lea eax, [esp + 0x30]
movaps xmm0, xmmword [eax]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
mulps xmm6, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
mulps xmm5, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
addps xmm5, xmm6
mulps xmm4, xmm1
addps xmm4, xmm5
movaps xmmword [esi + 0x760], xmm4
mov ecx, dword [esi + 0x1f0]
cmp ecx, edi
mov edx, 0x60000000
je 0x43a0d7
fld dword [esi + 0x90]
mov eax, dword [esi + 0x8c0]
cmp eax, 0xcb000000
fsub dword [esi + 0x8c0]
fstp dword [esp + 0x2c]
je 0x43a07f
mov edx, dword [ecx + 8]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jnp 0x43a07f
mov al, byte [ecx + 0xc]
test al, al
jne case.0x43a1d1.1
inc edx
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
lea edx, [esp + 0xc]
lea eax, [esp + 0xc]
fdivr dword [esp + 0x2c]
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
fld dword [0x68b500]
fsub st(1)
fstp dword [esp + 0x10]
movss xmm0, dword [edx]
movaps xmm2, xmm0
fstp dword [esp + 0x10]
movss xmm1, dword [eax]
shufps xmm2, xmm0, 0
movaps xmm0, xmmword [esi + 0x910]
mulps xmm0, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movaps xmm1, xmmword [esi + 0x900]
mulps xmm1, xmm2
addps xmm1, xmm0
movaps xmmword [esp + 0x34], xmm1
call fcn.00401bc0
fld dword [0x725b3c]
fmul dword [esi + 0x8c8]
movaps xmm0, xmmword [esi + 0x8f0]
push ecx
lea edx, [esp + 0x34]
fstp dword [esp]
push edx
mov ecx, esi
movaps xmmword [esp + 0x38], xmm0
call fcn.005f0540
jmp case.0x43a1d1.1
and dword [esi + 4], 0xfffffeff
movaps xmm0, xmmword [esi + 0x8d0]
movaps xmmword [esi + 0x10], xmm0
movaps xmm0, xmmword [esi + 0x8e0]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x8f0]
movaps xmmword [esi + 0x30], xmm0
movaps xmm0, xmmword [esi + 0x900]
movaps xmmword [esi + 0x40], xmm0
mov eax, dword [esi + 0x1f0]
xor ecx, ecx
mov cx, word [eax + 2]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esi
call fcn.0041b9a0
mov dword [esi + 0x1f0], edi
jmp case.0x43a1d1.1
fld dword [0x68b4fc]
fld dword [esi + 0x90]
fucompp
fnstsw ax
test ah, 0x44
mov eax, dword [esi + 4]
jnp 0x43a1c4
test edx, eax
jne 0x43a1c8
movsx eax, byte [esi + 9]
cmp eax, 0x1a
ja case.0x43a1d1.1
jmp dword [eax*4 + 0x43a51c]
mov ecx, esi
call fcn.0042fa80
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.004383c0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00439170
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042ceb0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00434030
cmp eax, 0xffffffff
jne case.0x43a1d1.1
or eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.00434500
cmp eax, 0xffffffff
jne case.0x43a1d1.1
or eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.00434500
cmp eax, 0xffffffff
jne case.0x43a1d1.1
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.0042d190
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00434640
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042d300
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.004346f0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042d3e0
jmp case.0x43a1d1.1
test edx, eax
je 0x43a23a
movsx eax, byte [esi + 9]
cmp eax, 0xf
ja case.0x43a1d1.1
jmp dword [eax*4 + 0x43a588]
mov ecx, esi
call fcn.00430370
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00433b90
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00433f90
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042e930
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00436ca0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.00436d40
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042c7d0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042cac0
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042fc20
jmp case.0x43a1d1.1
mov ecx, esi
call fcn.0042be30
mov dword [esi + 0x5b8], 0x3f800000
mov al, byte [esi + 0x204]
test al, al
je 0x43a259
mov byte [esi + 0x204], 0
mov eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test dword [esi + 4], ebx
jne 0x43a185
fld dword [esi + 0x1e0]
lea edx, [esp + 0xc]
fdiv dword [esi + 0x1dc]
lea eax, [esp + 0x30]
mov dword [esp + 0xc], 0
movss xmm0, dword [edx]
push eax
lea ecx, [esp + 0x64]
push ecx
fsubr dword [0x68b500]
fstp dword [esi + 0x142c]
movaps xmm1, xmmword [esi + 0x30]
unpcklps xmm0, xmm1
shufps xmm0, xmm1, 0xe1
movaps xmmword [esi + 0x30], xmm0
movaps xmmword [esp + 0x38], xmm0
call fcn.005ff310
movaps xmm0, xmmword [eax]
movaps xmmword [esi + 0x10], xmm0
movaps xmm0, xmmword [eax + 0x10]
lea edi, [esi + 0x10]
movaps xmmword [edi + 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [edi + 0x20], xmm0
mov edx, dword [esi + 0x5b8]
add esp, 8
push edx
mov ecx, esi
call fcn.004c6dd0
test dword [esi + 4], ebx
jne 0x43a185
movaps xmm0, xmmword [esi + 0x40]
movaps xmmword [esp + 0x30], xmm0
fld dword [esp + 0x30]
sub esp, 8
fstp qword [esp]
call fcn.00671b46
add esp, 8
test eax, eax
je 0x43a3cc
push 0x68bacc
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
movss xmm0, dword [0x68b4fc]
mov eax, dword [ebp + 8]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x68b4fc]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x68b500]
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmmword [esp + 0x10]
shufps xmm0, xmm0, 0x39
movaps xmmword [esp + 0x80], xmm0
shufps xmm0, xmm0, 0x39
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x39
movaps xmmword [esp + 0x60], xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x18], xmm1
movss xmm1, dword [0x68b4fc]
movaps xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [eax]
movss dword [esp + 0x1c], xmm1
movaps xmm1, xmmword [esp + 0x10]
lea ecx, [esp + 0x60]
shufps xmm1, xmm0, 0xe0
push ecx
shufps xmm0, xmm1, 0x24
mov ecx, edi
movaps xmmword [esp + 0x94], xmm0
call fcn.004010b0
mov al, byte [esi + 9]
cmp al, 7
je 0x43a3e5
cmp al, 0xa
je 0x43a3e5
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x43a3e5
mov ecx, esi
call fcn.004339c0
push 0
lea ecx, [esi + 0x9c0]
call fcn.00401a50
mov ecx, dword [esi + 0x20c]
test ecx, ecx
mov edx, dword [0x725b2c]
mov dword [esi + 0x9e0], edx
je 0x43a45c
push 0x14
call fcn.005ef7a0
test eax, eax
je 0x43a45c
mov edi, dword [esi + 0x20c]
push 0x3e700000
push 0x3da00000
push edi
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
call fcn.00404100
lea ecx, [esp + 0x10]
push ecx
push 0x14
mov ecx, edi
mov ebx, eax
call fcn.005ef7a0
mov ecx, eax
call fcn.005efd30
movaps xmm0, xmmword [ebx]
movaps xmm1, xmmword [eax]
lea edx, [esp + 0x30]
addps xmm1, xmm0
movaps xmmword [esp + 0x30], xmm1
push edx
jmp 0x43a478
mov dword [esp + 0xc], 0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x30]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x30], xmm0
push eax
lea ecx, [esi + 0x620]
call fcn.004ea190
cmp dword [esi + 0x948], 0x4f000000
je 0x43a50e
mov eax, dword [esi + 4]
test eax, 0x60000000
jne 0x43a50e
shr eax, 0x1c
test al, 1
jne 0x43a50e
mov ecx, esi
call fcn.0042bbf0
test al, al
jne 0x43a50e
fild dword [0x725b2c]
fcomp dword [esi + 0x948]
fnstsw ax
test ah, 0x41
jne 0x43a50e
mov eax, dword [esi + 0x928]
cmp eax, 0xffffffff
je 0x43a50e
mov ecx, dword [esi + 0x944]
mov edx, dword [esi + 0x940]
push ecx
mov ecx, dword [esi + 0x93c]
push edx
mov edx, dword [esi + 0x938]
push ecx
mov ecx, dword [esi + 0x934]
push edx
mov edx, dword [esi + 0x930]
push ecx
mov ecx, dword [esi + 0x92c]
push edx
push ecx
push eax
lea ecx, [esp + 0x50]
call fcn.00401d20
push esi
lea ecx, [esp + 0x34]
call fcn.00401d60
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4