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

Disassembly:
sub esp, 0x64
mov eax, dword [0x9d2c30]
mov ecx, dword [0x9d2c38]
imul eax, eax, 0x4d0
push ebx
imul ecx, ecx, 0x4d0
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
push 0x4d0
add eax, 0x9cdf30
push eax
add ecx, 0x9d2c40
push ecx
call fcn.004ad5c0
mov edx, dword [0x9d2c38]
mov eax, dword [0x9d2c30]
fld dword [esp + 0x88]
movss xmm0, dword [0x6cc608]
fstp dword [esp + 8]
mov dword [edx*4 + 0x9d35e0], eax
mov ecx, dword [0x9d2c30]
add dword [0x9d2c38], 1
imul ecx, ecx, 0x4d0
add esp, 8
movss dword [ecx + 0x9ce3e4], xmm0
call fcn.00590d90
add esp, 4
push 1
call fcn.0058d1c0
mov esi, dword [0x9d2c30]
mov eax, dword [ebp + 4]
imul esi, esi, 0x4d0
fld dword [eax + 0x24]
fsub qword [0x6fa6e0]
fstp dword [esp + 0x80]
add esp, 4
add esi, 0x9cdfe0
cmp dword [eax + 0x10], 0
mov dword [0x93d8e8], 0
je 0x59be8d
fld dword [eax + 0x20]
mov edx, dword [eax + 0x10]
fmul qword [0x6f9c60]
mov edi, dword [edx]
push ecx
add edi, 0x14
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
fstp dword [esp]
push edi
call sub.d3dx9_35.dll_D3DXMatrixRotationY
fld dword [esi]
fstp dword [edi + 0x30]
fld dword [esi + 4]
fadd dword [esp + 0x7c]
fstp dword [edi + 0x34]
fld dword [esi + 8]
fstp dword [edi + 0x38]
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x38]
push edx
call fcn.00580180
add esp, 4
mov eax, dword [ebp + 4]
cmp dword [eax + 0x14], 0
xorps xmm0, xmm0
je 0x59bec1
mov ecx, eax
mov edx, dword [ecx + 0x14]
mov eax, dword [edx]
add eax, 0x14
movss dword [eax + 0x30], xmm0
movss dword [eax + 0x34], xmm0
movss dword [eax + 0x38], xmm0
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x38]
push ecx
call fcn.00580180
add esp, 4
mov eax, dword [0x805bbc]
mov edi, dword [0x805bcc]
mov ecx, dword [0x805bc0]
mov edx, dword [0x805bc4]
mov esi, dword [0x805bc8]
mov ebx, dword [0x805bd0]
movss xmm0, dword [0x6fa6dc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edi
lea eax, [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], ebx
movss dword [esp + 0x50], xmm0
call fcn.0058e8e0
mov eax, dword [0x819afc]
mov edi, eax
shr edi, 8
and edi, 1
mov dword [esp + 0x14], edi
je 0x59bf4b
and eax, 0xfffffeff
or eax, 1
mov dword [0x819afc], eax
mov ecx, eax
shr ecx, 7
and ecx, 1
mov dword [esp + 0x1c], ecx
je 0x59bf66
and eax, 0xffffff7f
or eax, 1
mov dword [0x819afc], eax
mov cl, byte [0x819b10]
cmp cl, 0x80
movzx edx, cl
mov dword [esp + 0x18], edx
je 0x59bf87
or eax, 1
mov dword [0x819afc], eax
mov byte [0x819b10], 0x80
mov ebx, eax
shr ebx, 0xb
and ebx, 1
mov dword [esp + 0x78], ebx
je 0x59bfa2
and eax, 0xfffff7ff
or eax, 1
mov dword [0x819afc], eax
mov esi, eax
shr esi, 6
and esi, 1
je 0x59bfb7
and eax, 0xffffffbf
or eax, 4
mov dword [0x819afc], eax
mov ecx, dword [0x9d35f0]
mov edx, dword [0x9d35f4]
xorps xmm0, xmm0
movss xmm1, dword [0x6cc5ec]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x9d35f8]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x9d3600]
mov dword [esp + 0x24], edx
mov edx, dword [0x9d35fc]
mov dword [esp + 0x30], ecx
mov ecx, dword [0x9d3608]
mov dword [esp + 0x2c], edx
mov edx, dword [0x9d3604]
movss dword [0x9d35f0], xmm0
movss dword [0x9d35f4], xmm0
movss dword [0x9d35f8], xmm0
movss dword [0x9d3600], xmm1
movss dword [0x9d3604], xmm1
movss dword [0x9d3608], xmm1
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 4]
cmp dword [ecx + 0x10], 0
mov dword [esp + 0x34], edx
mov edx, dword [0x9d360c]
mov dword [esp + 0x3c], edx
je 0x59c0ed
call fcn.0057fdb0
mov edx, dword [0x9d3678]
mov edi, dword [0x9d3670]
mov ebx, dword [0x9d3674]
mov dword [esp + 0x7c], eax
mov eax, dword [0x9d367c]
movss dword [0x9d3670], xmm0
movss dword [0x9d3674], xmm0
movss dword [0x9d3678], xmm1
movss dword [0x9d367c], xmm0
mov ecx, dword [ebp + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x48], edx
call fcn.00581320
cmp dword [0x82233c], 0
jne 0x59c0c1
sub dword [0x822338], 1
lea edx, [esp + 0x7c]
push 0
push edx
call fcn.00581000
add esp, 8
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [0x9d3670], edi
mov edi, dword [esp + 0x14]
mov dword [0x9d3674], ebx
mov ebx, dword [esp + 0x78]
mov dword [0x9d3678], eax
mov eax, dword [0x819afc]
mov dword [0x9d367c], ecx
test eax, 0x100
jne 0x59c0fe
or eax, 0x101
mov dword [0x819afc], eax
push 0x819af0
push 6
push 6
push 5
push 5
call fcn.004043b0
mov eax, dword [0x819afc]
add esp, 0x14
test al, 0x80
jne 0x59c126
or eax, 0x81
mov dword [0x819afc], eax
cmp byte [0x819b10], 0
je 0x59c13e
or eax, 1
mov dword [0x819afc], eax
mov byte [0x819b10], 0
test byte [0x819afc], 0x40
je 0x59c152
and eax, 0xffffffbf
or eax, 4
mov dword [0x819afc], eax
mov edx, dword [ebp + 4]
cmp dword [edx + 0x14], 0
je 0x59c208
call fcn.0057fdb0
mov ecx, dword [0x9d3678]
mov edx, dword [0x9d367c]
mov ebx, dword [0x9d3670]
mov dword [esp + 0x7c], eax
mov eax, dword [0x9d3674]
mov dword [esp + 0x44], eax
mov eax, dword [0x9d3680]
mov dword [0x9d3670], eax
mov eax, dword [0x9d368c]
mov dword [esp + 0x48], ecx
mov ecx, dword [0x9d3684]
mov dword [esp + 0x4c], edx
mov edx, dword [0x9d3688]
mov dword [0x9d3674], ecx
mov dword [0x9d3678], edx
mov dword [0x9d367c], eax
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x14]
call fcn.00581320
cmp dword [0x82233c], 0
jne 0x59c1e1
sub dword [0x822338], 1
lea edx, [esp + 0x7c]
push 0
push edx
call fcn.00581000
add esp, 8
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [0x9d3670], ebx
mov ebx, dword [esp + 0x78]
mov dword [0x9d3674], eax
mov dword [0x9d3678], ecx
mov dword [0x9d367c], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [0x9d35f0], eax
mov eax, dword [esp + 0x2c]
mov dword [0x9d35f4], ecx
mov ecx, dword [esp + 0x30]
mov dword [0x9d35fc], eax
mov eax, dword [esp + 0x38]
mov dword [0x9d35f8], edx
mov edx, dword [esp + 0x34]
mov dword [0x9d3600], ecx
mov ecx, dword [esp + 0x3c]
mov dword [0x9d3608], eax
lea eax, [esp + 0x58]
mov dword [0x9d3604], edx
mov dword [0x9d360c], ecx
call fcn.0058e8e0
mov eax, dword [0x9d2c38]
mov edx, dword [0x9d2c30]
sub eax, 1
imul edx, edx, 0x4d0
mov dword [0x9d2c38], eax
imul eax, eax, 0x4d0
push 0x4d0
add eax, 0x9d2c40
push eax
add edx, 0x9cdf30
push edx
call fcn.004ad5c0
mov eax, dword [0x819afc]
xor ecx, ecx
add esp, 0xc
test esi, esi
setne cl
mov edx, eax
shr edx, 6
and edx, 1
cmp edx, ecx
je 0x59c2c3
shl esi, 6
xor esi, eax
and esi, 0x40
xor esi, eax
or esi, 4
mov eax, esi
mov dword [0x819afc], eax
xor ecx, ecx
test ebx, ebx
setne cl
mov edx, eax
shr edx, 0xb
and edx, 1
cmp edx, ecx
je 0x59c2ed
shl ebx, 0xb
xor ebx, eax
and ebx, 0x800
xor ebx, eax
or ebx, 1
mov eax, ebx
mov dword [0x819afc], eax
movzx edx, byte [0x819b10]
mov ecx, dword [esp + 0x18]
cmp edx, ecx
je 0x59c30a
or eax, 1
mov dword [0x819afc], eax
mov byte [0x819b10], cl
mov ecx, dword [esp + 0x1c]
xor edx, edx
test ecx, ecx
setne dl
mov esi, eax
shr esi, 7
and esi, 1
cmp esi, edx
je 0x59c338
shl ecx, 7
xor ecx, eax
and ecx, 0x80
xor ecx, eax
or ecx, 1
mov eax, ecx
mov dword [0x819afc], eax
xor ecx, ecx
test edi, edi
setne cl
mov edx, eax
shr edx, 8
and edx, 1
cmp edx, ecx
je 0x59c361
shl edi, 8
xor edi, eax
and edi, 0x100
xor edi, eax
or edi, 1
mov dword [0x819afc], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8