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

Disassembly:
sub esp, 0x2e4
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x17c]
push edi
xor edi, edi
test eax, 0x10000000
je 0x4444f2
cmp dword [ebp + 0x1a8], edi
jne 0x4444f2
mov dword [ebp + 0xa8], edi
pop edi
pop ebp
add esp, 0x2e4
ret 0x14
mov ecx, dword [ebp + 0x48]
cmp dword [ecx + 0xc4], edi
jne 0x444503
mov dword [ebp + 0xa8], edi
cmp dword [0x5ca298], edi
mov ecx, 1
jne 0x44451e
cmp dword [ebp + 0xa8], ecx
jb 0x44451e
mov dword [ebp + 0xa8], ecx
test eax, 0x200000
je 0x444534
mov eax, dword [ebp + 0xa8]
lea edx, [eax + eax*4]
mov dword [ebp + 0xa8], edx
cmp dword [ebp + 0xa8], edi
jbe 0x445941
push ebx
push esi
jmp 0x444546
xor edi, edi
test byte [ebp + 4], 0x20
mov esi, dword [sym.imp.MSVCR71.dll_rand]
jne 0x44593f
mov ecx, dword [0x9cc4e0]
call fcn.00443e70
mov ebx, eax
mov eax, dword [ebp + 0xb4]
mov dword [ebx + 0x12c], eax
mov dword [ebp + 0xb4], ebx
mov dword [ebx + 0x58], edi
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x2c0]
fadd dword [ebp + 0x2bc]
fcom dword [0x4eb884]
fst dword [ebx + 0x5c]
fnstsw ax
test ah, 5
jp 0x4445b6
fstp st(0)
fld dword [0x4eb884]
jmp 0x4445cb
fcom dword [0x4eb898]
fnstsw ax
test ah, 5
jnp 0x4445cb
fstp st(0)
fld dword [0x4eb898]
fstp dword [ebx + 0x5c]
mov ecx, dword [ebp + 0x114]
mov dword [ebx + 0x24], ecx
mov edx, dword [ebp + 0x118]
mov dword [ebx + 0x28], edx
mov eax, dword [ebp + 0x280]
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebp + 0x108]
mov dword [ebx + 0x30], ecx
mov edx, dword [ebp + 0x10c]
mov dword [ebx + 0x34], edx
mov eax, dword [ebp + 0x110]
mov dword [ebx + 0x38], eax
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x294]
fadd dword [ebp + 0x284]
fstp dword [ebx + 0x3c]
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x298]
fadd dword [ebp + 0x288]
fstp dword [ebx + 0x40]
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x29c]
fadd dword [ebp + 0x28c]
fstp dword [ebx + 0x44]
mov ecx, dword [ebp + 0x280]
fld dword [ebx + 0x3c]
mov dword [ebx + 0x48], ecx
fcomp dword [0x4e54a4]
fnstsw ax
test ah, 5
jp 0x44469a
fld dword [0x4e54a4]
jmp 0x4446b5
fld dword [ebx + 0x3c]
fcomp dword [0x4e54b0]
fnstsw ax
test ah, 5
jp 0x4446af
fld dword [ebx + 0x3c]
jmp 0x4446b5
fld dword [0x4e54b0]
fst dword [ebx + 0x3c]
fld dword [ebx + 0x40]
fcomp dword [0x4e54a4]
fnstsw ax
test ah, 5
jp 0x4446d0
fld dword [0x4e54a4]
jmp 0x4446eb
fld dword [ebx + 0x40]
fcomp dword [0x4e54b0]
fnstsw ax
test ah, 5
jp 0x4446e5
fld dword [ebx + 0x40]
jmp 0x4446eb
fld dword [0x4e54b0]
fst dword [ebx + 0x40]
fld dword [ebx + 0x44]
fcomp dword [0x4e54a4]
fnstsw ax
test ah, 5
jp 0x444706
fld dword [0x4e54a4]
jmp 0x444721
fld dword [ebx + 0x44]
fcomp dword [0x4e54b0]
fnstsw ax
test ah, 5
jp 0x44471b
fld dword [ebx + 0x44]
jmp 0x444721
fld dword [0x4e54b0]
fst dword [ebx + 0x44]
fld dword [ebp + 0x2a4]
fsub st(3)
fdiv dword [ebx + 0x5c]
fstp dword [ebx + 0x4c]
fld dword [ebp + 0x2a8]
fsub st(2)
fdiv dword [ebx + 0x5c]
fstp dword [ebx + 0x50]
fld dword [ebp + 0x2ac]
fsub st(1)
fdiv dword [ebx + 0x5c]
fstp dword [ebx + 0x54]
fstp st(0)
fstp st(0)
fstp st(0)
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x278]
fadd dword [ebp + 0x274]
fcom dword [0x4e5940]
fst dword [ebx + 0x60]
fnstsw ax
test ah, 5
jp 0x444792
fstp st(0)
fld dword [0x4e5940]
jmp 0x4447a7
fcom dword [0x4e54bc]
fnstsw ax
test ah, 5
jnp 0x4447a7
fstp st(0)
fld dword [0x4e54bc]
fst dword [ebx + 0x60]
fld dword [ebp + 0x27c]
fsub st(1)
fdiv dword [ebx + 0x5c]
fstp dword [ebx + 0x64]
fstp st(0)
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x26c]
fadd dword [ebp + 0x268]
fmul dword [0x4eb90c]
fcom dword [0x4eb908]
fst dword [ebx + 0x68]
fnstsw ax
test ah, 5
jp 0x4447fe
fstp st(0)
fld dword [0x4eb908]
jmp 0x444813
fcom dword [0x4eb904]
fnstsw ax
test ah, 5
jnp 0x444813
fstp st(0)
fld dword [0x4eb904]
fst dword [ebx + 0x68]
fld dword [ebp + 0x270]
fmul dword [0x4eb90c]
fsub st(1)
fdiv dword [ebx + 0x5c]
fstp dword [ebx + 0x6c]
fstp st(0)
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fadd dword [ebp + 0x264]
fstp dword [ebx + 0x80]
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebx + 0x88], edi
mov dword [ebx + 0x8c], edi
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fstp dword [ebx + 0x84]
mov edx, dword [ebp + 0x130]
mov dword [ebx + 0x70], edx
mov eax, dword [ebp + 0x134]
mov dword [ebx + 0x74], eax
mov ecx, dword [ebp + 0x138]
mov dword [ebx + 0x78], ecx
mov edx, dword [ebp + 0x13c]
mov dword [ebx + 0x7c], edx
mov al, byte [ebp + 0x17c]
shr al, 5
and al, 1
mov byte [ebx + 0xd0], al
fld dword [ebp + 0x140]
fsub dword [ebp + 0x14c]
fld dword [ebp + 0x144]
fsub dword [ebp + 0x150]
fld dword [ebp + 0x148]
fsub dword [ebp + 0x154]
fstp dword [esp + 0x1f0]
fld dword [0x4e54b0]
fdiv dword [ebp + 0xac]
fst dword [esp + 0x10]
fmul st(2)
fstp dword [esp + 0x3c]
fmul dword [esp + 0x10]
fstp dword [esp + 0x40]
fstp st(0)
fld dword [esp + 0x1f0]
fmul dword [esp + 0x10]
fstp dword [esp + 0x44]
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fld dword [esp + 0x3c]
fmul st(1)
fld st(1)
fmul dword [esp + 0x40]
fstp dword [esp + 0x158]
fld dword [esp + 0x44]
fmul st(2)
fstp dword [esp + 0x15c]
mov ecx, dword [ebp + 0xac]
mov dword [esp + 0x54], ecx
fmul dword [esp + 0x54]
lea edi, [ebx + 0xc]
mov edx, edi
fstp st(1)
fld dword [esp + 0x158]
fmul dword [esp + 0x54]
fld dword [esp + 0x15c]
fmul dword [esp + 0x54]
fstp dword [esp + 0x208]
fxch st(1)
fadd dword [ebp + 0x14c]
fstp dword [esp + 0xdc]
mov eax, dword [esp + 0xdc]
fadd dword [ebp + 0x150]
fstp dword [esp + 0xe0]
mov ecx, dword [esp + 0xe0]
fld dword [esp + 0x208]
fadd dword [ebp + 0x154]
mov dword [edx], eax
mov dword [edx + 4], ecx
fstp dword [esp + 0xe4]
mov eax, dword [esp + 0xe4]
mov dword [edx + 8], eax
test byte [ebp + 0x17c], 1
je 0x444f85
call esi
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [ebp + 0x184]
fmul dword [0x4eb544]
fld dword [ebp + 0x184]
fmul dword [0x4e5940]
fsubp st(1)
fstp dword [esp + 0x14]
call esi
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [ebp + 0x188]
fmul dword [0x4eb544]
fld dword [ebp + 0x188]
fmul dword [0x4e5940]
fsubp st(1)
fstp dword [esp + 0x18]
call esi
cdq
mov ecx, 0x3e8
idiv ecx
test byte [ebp + 0x17c], 2
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul dword [ebp + 0x18c]
fmul dword [0x4eb544]
fld dword [ebp + 0x18c]
fmul dword [0x4e5940]
fsubp st(1)
fstp dword [esp + 0x1c]
je 0x444d0e
fld dword [ebp + 0x184]
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fld st(1)
fmul st(2)
fmul dword [0x4eb900]
fcompp
fnstsw ax
fstp st(0)
test ah, 5
jp 0x444aeb
fld dword [esp + 0x14]
fmul dword [0x4e5940]
fstp dword [esp + 0x88]
mov edx, dword [esp + 0x88]
fld dword [esp + 0x18]
mov dword [esp + 0x14], edx
fmul dword [0x4e5940]
fstp dword [esp + 0x8c]
mov eax, dword [esp + 0x8c]
fld dword [esp + 0x1c]
mov dword [esp + 0x18], eax
fmul dword [0x4e5940]
fstp dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x1c], ecx
fld dword [ebp + 0x190]
fcomp dword [0x4e54a4]
fnstsw ax
test ah, 0x41
jne 0x444f69
fld dword [ebp + 0x184]
fmul dword [0x4e5940]
fld dword [esp + 0x18]
fmul dword [0x4e5940]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x444b29
fstp st(0)
fld dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul dword [0x4e5940]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x444b44
fstp st(0)
fld dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fsqrt
fld st(0)
fmulp st(1)
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fsqrt
fxch st(1)
fmul dword [ebp + 0x190]
fcompp
fnstsw ax
test ah, 0x41
jne 0x444f69
fld dword [ebp + 0x190]
fld st(0)
fmul dword [ebp + 0x184]
fld st(1)
fmul dword [ebp + 0x188]
fstp dword [esp + 0x1a0]
fxch st(1)
fmul dword [ebp + 0x18c]
fstp dword [esp + 0x1a4]
fmul dword [0x4e5940]
fstp dword [esp + 0x100]
mov edx, dword [esp + 0x100]
fld dword [esp + 0x1a0]
mov dword [esp + 0x48], edx
fmul dword [0x4e5940]
fstp dword [esp + 0x104]
mov eax, dword [esp + 0x104]
fld dword [esp + 0x1a4]
mov dword [esp + 0x4c], eax
fmul dword [0x4e5940]
fstp dword [esp + 0x108]
mov ecx, dword [esp + 0x108]
fld dword [esp + 0x48]
mov dword [esp + 0x50], ecx
fdiv dword [esp + 0x14]
fabs
fld dword [esp + 0x4c]
fdiv dword [esp + 0x18]
fabs
fstp dword [esp + 0x10]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x444c28
fstp st(0)
fld dword [esp + 0x10]
fld dword [esp + 0x50]
fdiv dword [esp + 0x1c]
fabs
fstp dword [esp + 0x10]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x444c47
fstp st(0)
fld dword [esp + 0x10]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
fld dword [esp + 0x18]
mov dword [esp + 0x48], edx
fmul st(1)
fstp dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x4c], eax
fmul dword [esp + 0x1c]
fstp dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
fld dword [0x4e54b0]
mov dword [esp + 0x50], ecx
fsub dword [ebp + 0x190]
fld dword [esp + 0x14]
fmul st(1)
fld st(1)
fmul dword [esp + 0x18]
fstp dword [esp + 0x134]
fxch st(1)
fmul dword [esp + 0x1c]
fstp dword [esp + 0x138]
fadd dword [esp + 0x48]
fstp dword [esp + 0xe8]
mov edx, dword [esp + 0xe8]
fld dword [esp + 0x134]
mov dword [esp + 0x14], edx
fadd dword [esp + 0x4c]
fstp dword [esp + 0xec]
mov eax, dword [esp + 0xec]
fld dword [esp + 0x138]
mov dword [esp + 0x18], eax
fadd dword [esp + 0x50]
fstp dword [esp + 0xf0]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x1c], ecx
jmp 0x444f69
fld dword [ebp + 0x190]
fcomp dword [0x4e54a4]
fnstsw ax
test ah, 0x41
jne 0x444f69
fld dword [ebp + 0x190]
fmul dword [ebp + 0x184]
fld dword [0x4e5940]
fmul st(1)
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
jne 0x444f67
fld dword [0x4eaaf4]
fmul st(1)
fcomp dword [esp + 0x14]
fnstsw ax
fstp st(0)
test ah, 0x41
jp 0x444f69
fld dword [ebp + 0x190]
fmul dword [ebp + 0x188]
fld dword [0x4e5940]
fmul st(1)
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x444f67
fld dword [0x4eaaf4]
fmul st(1)
fcomp dword [esp + 0x18]
fnstsw ax
fstp st(0)
test ah, 0x41
jp 0x444f69
fld dword [ebp + 0x190]
fmul dword [ebp + 0x18c]
fld dword [0x4e5940]
fmul st(1)
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
jne 0x444f67
fld dword [0x4eaaf4]
fmul st(1)
fcomp dword [esp + 0x1c]
fnstsw ax
fstp st(0)
test ah, 0x41
jp 0x444f69
fld dword [ebp + 0x190]
fld st(0)
fmul dword [ebp + 0x184]
fld st(1)
fmul dword [ebp + 0x188]
fstp dword [esp + 0x188]
fxch st(1)
fmul dword [ebp + 0x18c]
fstp dword [esp + 0x18c]
fmul dword [0x4e5940]
fstp dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
fld dword [esp + 0x188]
mov dword [esp + 0x30], edx
fmul dword [0x4e5940]
fstp dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
fld dword [esp + 0x18c]
mov dword [esp + 0x34], eax
fmul dword [0x4e5940]
fstp dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
fld dword [esp + 0x30]
mov dword [esp + 0x38], ecx
fdiv dword [esp + 0x14]
fabs
fld dword [esp + 0x34]
fdiv dword [esp + 0x18]
fabs
fstp dword [esp + 0x10]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x444e84
fstp st(0)
fld dword [esp + 0x10]
fld dword [esp + 0x38]
fdiv dword [esp + 0x1c]
fabs
fstp dword [esp + 0x10]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x444ea3
fstp st(0)
fld dword [esp + 0x10]
fld dword [esp + 0x14]
fmul st(1)
fstp dword [esp + 0x118]
mov edx, dword [esp + 0x118]
fld dword [esp + 0x18]
mov dword [esp + 0x30], edx
fmul st(1)
fstp dword [esp + 0x11c]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x34], eax
fmul dword [esp + 0x1c]
fstp dword [esp + 0x120]
mov ecx, dword [esp + 0x120]
fld dword [0x4e54b0]
mov dword [esp + 0x38], ecx
fsub dword [ebp + 0x190]
fld dword [esp + 0x14]
fmul st(1)
fld st(1)
fmul dword [esp + 0x18]
fstp dword [esp + 0x170]
fxch st(1)
fmul dword [esp + 0x1c]
fstp dword [esp + 0x174]
fadd dword [esp + 0x30]
fstp dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
fld dword [esp + 0x170]
mov dword [esp + 0x14], edx
fadd dword [esp + 0x34]
fstp dword [esp + 0xd4]
mov eax, dword [esp + 0xd4]
fld dword [esp + 0x174]
mov dword [esp + 0x18], eax
fadd dword [esp + 0x38]
fstp dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x1c], ecx
jmp 0x444f69
fstp st(0)
fld dword [esp + 0x14]
fadd dword [edi]
fstp dword [edi]
fld dword [esp + 0x18]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x1c]
fadd dword [edi + 8]
fstp dword [edi + 8]
test byte [ebp + 0x17c], 8
je 0x4451ef
fld dword [esp + 0x40]
mov dword [esp + 0x64], 0
fcomp dword [0x4e5950]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x20], 0x3f800000
mov dword [esp + 0x24], 0
fnstsw ax
mov dword [esp + 0x28], 0
mov dword [esp + 0x148], 0xbc23d70a
test ah, 0x41
mov dword [esp + 0x14c], 0x461c4000
mov dword [esp + 0x150], 0
mov dword [esp + 0x13c], 0xbc23d70a
mov dword [esp + 0x140], 0xc61c4000
mov dword [esp + 0x144], 0
jp 0x445064
fld dword [esp + 0x40]
fcomp dword [0x4eaac4]
fnstsw ax
test ah, 1
jne 0x445064
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x80], 0x3f800000
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
jmp 0x4450c4
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x220]
push ecx
call sub.d3dx9_35.dll_D3DXPlaneFromPointNormal
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x220]
push ecx
lea edx, [esp + 0x274]
push edx
call fcn.00434d70
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
add esp, 0x10
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
push ecx
mov edx, ecx
push edx
mov dword [esp + 0x30], eax
call sub.d3dx9_35.dll_D3DXVec3Normalize
fld dword [ebp + 0x50]
fcomp dword [ebp + 0x54]
fnstsw ax
test ah, 1
jne 0x4450e9
fld dword [ebp + 0x50]
fcomp dword [ebp + 0x128]
fnstsw ax
test ah, 5
jp 0x4450e9
fld dword [ebp + 0x11c]
jmp 0x445117
fld dword [ebp + 0x50]
fcomp dword [ebp + 0x128]
fnstsw ax
test ah, 1
jne 0x445111
fld dword [ebp + 0x50]
fcomp dword [ebp + 0x12c]
fnstsw ax
test ah, 5
jp 0x445111
fld dword [ebp + 0x120]
jmp 0x445117
fld dword [ebp + 0x124]
fmul dword [ebp + 0x104]
push ecx
fadd dword [ebp + 0x19c]
fstp dword [ebp + 0x19c]
fld dword [ebp + 0x19c]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x2c]
fstp st(0)
fld dword [ebp + 0x198]
fmul dword [ebp + 0x104]
fmul dword [0x4eaac0]
fadd dword [ebp + 0x100]
fst dword [ebp + 0x100]
fld dword [esp + 0x44]
fcomp dword [0x4e54a4]
fmul dword [0x4eaa18]
fnstsw ax
test ah, 0x41
jne 0x445197
fstp dword [esp]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x2bc]
push ecx
jmp 0x4451ad
fadd dword [0x507574]
lea edx, [esp + 0x40]
lea eax, [esp + 0x2b8]
fstp dword [esp]
push edx
push eax
call sub.d3dx9_35.dll_D3DXMatrixRotationAxis
lea ecx, [esp + 0x2b4]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x6c]
push eax
call sub.d3dx9_35.dll_D3DXVec3TransformCoord
fld dword [esp + 0x64]
fadd dword [edi]
fstp dword [edi]
fld dword [esp + 0x68]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esp + 0x6c]
fadd dword [edi + 8]
fstp dword [edi + 8]
mov dword [ebp + 0x104], 0
mov eax, dword [ebp + 0x17c]
test ah, 8
je 0x4452ee
test ah, 1
jne 0x4452ee
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1dc], 0
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1e4], 0x3f800000
mov dword [esp + 0x1d0], 0x3f800000
mov dword [esp + 0x1bc], 0x3f800000
mov dword [esp + 0x1a8], 0x3f800000
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x22c]
fstp dword [esp]
push ecx
call sub.d3dx9_35.dll_D3DXMatrixRotationY
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x1ac]
push eax
lea ecx, [ebx + 0x90]
push ecx
call sub.d3dx9_35.dll_D3DXMatrixMultiply
mov eax, dword [ebp + 0x17c]
test ah, 0x20
je 0x44530c
lea esi, [ebp + 8]
mov ecx, 0x10
lea edi, [esp + 0x274]
rep movsd dword es:[edi], dword [esi]
jmp 0x445325
mov edx, dword [esp + 0x2fc]
push edx
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x27c]
push ecx
call sub.d3dx9_35.dll_D3DXMatrixMultiply
mov eax, dword [ebp + 0x17c]
test ah, ah
jns 0x445388
mov esi, dword [esp + 0x2fc]
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x278]
mov ecx, 0x10
lea edi, [esp + 0x22c]
rep movsd dword es:[edi], dword [esi]
push eax
mov dword [esp + 0x260], 0
mov dword [esp + 0x264], 0
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0x3f800000
call fcn.004357c0
add esp, 8
lea ecx, [esp + 0x274]
push ecx
lea edi, [ebx + 0xc]
push edi
push edi
call sub.d3dx9_35.dll_D3DXVec3TransformCoord
fld dword [0x4e54b0]
test dword [ebp + 0x17c], 0x200000
je 0x4453db
mov eax, dword [ebp + 0xa8]
fstp st(0)
xor edx, edx
mov ecx, 5
div ecx
test edx, edx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
jge 0x4453cf
fadd dword [0x4e594c]
fmul dword [0x4e54ac]
fsubr dword [0x4e54b0]
fld dword [ebp + 0xac]
mov eax, dword [ebp + 0x48]
fld st(0)
add eax, 0x88
fmul dword [eax]
mov esi, dword [sym.imp.MSVCR71.dll_rand]
fld st(1)
mov edx, ebx
fmul dword [eax + 4]
fstp dword [esp + 0x164]
fxch st(1)
fmul dword [eax + 8]
fstp dword [esp + 0x168]
fmul st(1)
fstp dword [esp + 0x178]
fld dword [esp + 0x164]
fmul st(1)
fstp dword [esp + 0x17c]
fmul dword [esp + 0x168]
fld dword [edi]
fsub dword [esp + 0x178]
fstp dword [edi]
fld dword [edi + 4]
fsub dword [esp + 0x17c]
fstp dword [edi + 4]
fld dword [edi + 8]
fsub st(1)
fstp dword [edi + 8]
mov eax, dword [ebp + 0x140]
mov dword [edx], eax
mov ecx, dword [ebp + 0x144]
fstp st(0)
mov dword [edx + 4], ecx
mov eax, dword [ebp + 0x148]
mov dword [edx + 8], eax
call esi
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x4ea984]
fmul dword [0x4eb8fc]
fstp dword [esp + 0x10]
call esi
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
mov eax, dword [ebp + 0x17c]
test eax, 0x2000000
lea esi, [ebx + 0x18]
fmul dword [0x4ea984]
fmul dword [ebp + 0x304]
fmul dword [0x4eb8f8]
je 0x4454cb
fstp st(0)
mov dword [ebx + 0x1c], 0
fld dword [esp + 0x10]
fcos
fstp dword [esi]
fld dword [esp + 0x10]
fsin
fstp dword [ebx + 0x20]
jmp 0x4454eb
fld st(0)
fcos
fstp dword [ebx + 0x1c]
fsin
fld dword [esp + 0x10]
fcos
fmul st(1)
fstp dword [esi]
fld dword [esp + 0x10]
fsin
fmul st(1)
fstp dword [ebx + 0x20]
fstp st(0)
fld dword [ebp + 0x258]
fadd dword [esi]
fstp dword [esi]
fld dword [ebp + 0x25c]
fadd dword [esi + 4]
fstp dword [esi + 4]
fld dword [ebp + 0x260]
fadd dword [esi + 8]
fstp dword [esi + 8]
mov ecx, dword [ebp + 0x48]
fld dword [ecx + 0xc8]
fmul dword [ebx + 0x60]
fstp dword [ebx + 0x60]
mov edx, dword [ebp + 0x48]
fld dword [edx + 0xc8]
fmul dword [ebx + 0x64]
fstp dword [ebx + 0x64]
mov eax, dword [ebp + 0x48]
fld dword [eax + 0xc8]
fmul dword [ebx + 0x68]
fstp dword [ebx + 0x68]
mov ecx, dword [ebp + 0x48]
fld dword [ecx + 0xc8]
fmul dword [ebx + 0x6c]
fstp dword [ebx + 0x6c]
mov edx, dword [ebp + 0x48]
fld dword [edx + 0xc8]
fld st(0)
fmul dword [esi]
fstp dword [esi]
fld st(0)
fmul dword [esi + 4]
fstp dword [esi + 4]
fmul dword [esi + 8]
fstp dword [esi + 8]
mov eax, dword [ebp + 0x17c]
test al, al
jns 0x4456b8
test ah, 0x20
je 0x4455c0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], 0
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x9c], 0
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
jmp 0x4455dd
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 0x94]
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
fld dword [esp + 0x5c]
fadd dword [eax + 0xb0]
fld dword [edi]
fsub dword [esp + 0x58]
fstp dword [esp + 0xac]
mov edx, dword [esp + 0xac]
fld dword [edi + 4]
mov dword [esp + 0xc4], edx
fsub st(1)
mov edx, esi
fstp dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc8], eax
fstp st(0)
fld dword [edi + 8]
fsub dword [esp + 0x60]
fstp dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
fld dword [0x4e54b0]
mov dword [esp + 0xcc], ecx
fdiv dword [ebx + 0x5c]
fld dword [esp + 0xc4]
fmul st(1)
fld dword [esp + 0xc8]
fmul st(2)
fstp dword [esp + 0x194]
fld dword [esp + 0xcc]
fmul st(2)
fstp dword [esp + 0x198]
fchs
fstp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [edx], eax
fstp st(0)
fld dword [esp + 0x194]
fchs
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
fld dword [esp + 0x198]
mov dword [edx + 4], ecx
fchs
fstp dword [esp + 0x78]
mov eax, dword [esp + 0x78]
mov dword [edx + 8], eax
mov dword [ebp + 0x2b4], 0x3f800000
mov dword [ebp + 0x2b8], 0
lea ecx, [ebp + 0x2c4]
push ecx
push esi
push esi
call sub.d3dx9_35.dll_D3DXVec3TransformCoord
mov eax, dword [ebp + 0x17c]
test ah, 0x20
jne 0x44581b
fld dword [0x4eb8f4]
fdiv dword [ebp + 0xac]
fcom dword [0x4e54b0]
fnstsw ax
test ah, 0x41
jne 0x4456f6
fstp st(0)
fld dword [0x4e54b0]
mov ecx, dword [ebp + 0x48]
mov eax, dword [ecx + 0x20]
test ah, 0x20
je 0x44577d
fld dword [esp + 0x300]
lea edx, [ebx + 0xd4]
fmul dword [0x4eb884]
fld dword [esp + 0x304]
fmul dword [0x4eb884]
fld dword [esp + 0x308]
fmul dword [0x4eb884]
fstp dword [esp + 0x214]
fxch st(1)
fmul st(2)
fstp dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
mov dword [edx], eax
fmul st(1)
fstp dword [esp + 0xf8]
mov ecx, dword [esp + 0xf8]
fld dword [esp + 0x214]
mov dword [edx + 4], ecx
fmul st(1)
fstp dword [esp + 0xfc]
mov eax, dword [esp + 0xfc]
mov dword [edx + 8], eax
fstp st(0)
jmp 0x44585f
test ah, 0x40
je 0x4457fb
fld dword [esp + 0x300]
lea ecx, [ebx + 0xd4]
fmul dword [0x4e5940]
fld dword [esp + 0x304]
fmul dword [0x4e5940]
fld dword [esp + 0x308]
fmul dword [0x4e5940]
fstp dword [esp + 0x1fc]
fxch st(1)
fmul st(2)
fstp dword [esp + 0x10c]
mov edx, dword [esp + 0x10c]
mov dword [ecx], edx
fmul st(1)
fstp dword [esp + 0x110]
mov eax, dword [esp + 0x110]
fld dword [esp + 0x1fc]
mov dword [ecx + 4], eax
fmul st(1)
fstp dword [esp + 0x114]
mov edx, dword [esp + 0x114]
mov dword [ecx + 8], edx
fstp st(0)
jmp 0x44585f
add ecx, 0xb8
fstp st(0)
mov edx, dword [ecx]
lea eax, [ebx + 0xd4]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
jmp 0x44585f
mov dword [esp + 0x124], 0
mov ecx, dword [esp + 0x124]
lea eax, [ebx + 0xd4]
mov dword [eax], ecx
mov dword [esp + 0x128], 0
mov edx, dword [esp + 0x128]
mov dword [esp + 0x12c], 0
mov ecx, dword [esp + 0x12c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x31c]
mov dword [ebx + 0xe0], edx
call dword [sym.imp.MSVCR71.dll_rand]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fmul dword [0x4ea984]
fadd st(0), st(0)
fsub dword [0x4e54b0]
fmul dword [ebp + 0x2b8]
fadd dword [ebp + 0x2b4]
fld dword [0x4e54a4]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4458ae
fstp st(0)
fld dword [0x4e5950]
jmp 0x4458da
fcom dword [0x4e54a4]
fnstsw ax
test ah, 5
jp 0x4458c5
fstp st(0)
fld dword [0x4e54a4]
jmp 0x4458da
fcom dword [0x4eb894]
fnstsw ax
test ah, 5
jnp 0x4458da
fstp st(0)
fld dword [0x4eb894]
fld st(0)
fmul dword [esi]
fstp dword [esi]
fld st(0)
fmul dword [esi + 4]
fstp dword [esi + 4]
fmul dword [esi + 8]
fstp dword [esi + 8]
mov ecx, dword [ebp + 0xa8]
mov eax, dword [ebp + 0x210]
dec ecx
test eax, eax
mov dword [ebp + 0xa8], ecx
je 0x445931
test dword [ebp + 0x17c], 0x80000010
jne 0x44591b
mov dword [ebx + 0xe4], 1
mov eax, dword [ebp + 0x210]
mov ecx, dword [esp + 0x2f8]
push eax
push ecx
mov ecx, ebx
call fcn.00443f60
mov eax, dword [ebp + 0xa8]
test eax, eax
ja 0x444544
pop esi
pop ebx
lea edx, [ebp + 0x140]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
add ebp, 0x14c
mov dword [ebp], eax
mov dword [ebp + 4], ecx
pop edi
mov dword [ebp + 8], edx
pop ebp
add esp, 0x2e4
ret 0x14