Function at 0x405900
Capabilities:
Check http status code

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x408bbb
push eax
mov dword fs:[0], esp
mov eax, dword [0x43b228]
sub esp, 0x68
test eax, eax
mov dword [ebp - 0x34], 0
push ebx
push esi
push edi
je 0x405933
call fcn.004143c0
mov eax, dword [0x43b1fc]
test eax, eax
jne 0x405949
mov eax, dword [0x43b228]
test eax, eax
je 0x405a48
mov eax, dword [0x43b228]
test eax, eax
je 0x405957
call fcn.0040a530
push 0xff
push 0xff
push 0xff
call fcn.0040bfb0
add esp, 0xc
mov eax, dword [0x43b228]
mov dword [0x43b1fc], 0
mov dword [0x43b1f4], 1
test eax, eax
je 0x405a48
mov eax, 0x4fafa0
test eax, eax
je 0x4059b6
mov eax, dword [0x4fafc8]
mov ecx, dword [0x4fafc0]
push eax
mov edx, dword [0x4fafbc]
push ecx
push edx
mov ecx, 0x52cfc8
call fcn.0040f6f0
mov eax, 0x4fafa0
test eax, eax
je 0x4059ea
mov eax, dword [0x4fafc8]
mov ecx, dword [0x4fafc4]
push eax
mov edx, dword [0x4fafc0]
push ecx
mov eax, dword [0x4fafbc]
push edx
mov ecx, dword [0x4fafb8]
push eax
push ecx
mov ecx, 0x52cfc8
call fcn.0040fa30
xor esi, esi
call fcn.00405310
mov eax, dword [0x43b1a0]
mov edi, 0xffffffff
imul eax, eax, 0x41c64e6d
add eax, 0x3039
mov dword [0x43b228], esi
mov dword [0x43b1a0], eax
call fcn.00424be0
sub edi, eax
call dword [sym.imp.WINMM.dll_timeGetTime]
xor edi, eax
call fcn.00424be0
xor edi, eax
mov eax, dword [0x43b1a0]
sar eax, 0x10
xor edi, eax
and edi, 1
push edi
call fcn.00414380
add esp, 4
mov dword [0x43b6f8], esi
jmp 0x408b7d
mov eax, dword [0x43b6f8]
test eax, eax
jne 0x405a73
mov eax, dword [0x43b218]
test eax, eax
je 0x405a7c
mov dword [0x43b6f8], 1
call fcn.00408eb0
mov dword [0x43b30c], 0xffffffff
mov eax, dword [0x43b218]
test eax, eax
jne 0x405a94
mov eax, dword [0x43b6f8]
test eax, eax
je 0x405a94
call fcn.00408e90
mov dword [0x43b6f8], 0
mov eax, dword [0x43b22c]
test eax, eax
je 0x405c34
mov eax, dword [0x5284a4]
test eax, eax
jne 0x405c34
mov eax, 1
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x405ad8
mov edx, dword [ecx + 0x40]
cmp edx, 4
je 0x405acf
cmp edx, 6
je 0x405acf
cmp edx, 7
jne 0x405ad1
xor eax, eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x405abd
test eax, eax
je 0x405c34
mov eax, dword [0x5274dc]
mov ecx, dword [0x43b230]
cmp ecx, eax
jl 0x405bf8
mov dword [0x5274e0], ecx
mov ecx, dword [0x43b1b0]
push ecx
xor edi, edi
call fcn.00409660
add esp, 4
mov edx, dword [0x43b1b0]
mov dword [0x43b1f4], 1
mov esi, edx
inc edx
mov eax, dword [0x43b1b4]
mov dword [0x43b1b0], edx
cmp eax, edx
jg 0x405b2e
xor edx, edx
mov eax, edx
mov ecx, dword [0x5274dc]
shl eax, 6
sub eax, edx
sub eax, edx
lea eax, [eax + eax*8]
sub eax, edx
shl eax, 3
lea eax, [eax + eax*8]
sub eax, edx
shl eax, 2
cmp dword [eax + 0x5556c0], ecx
jge 0x405b65
mov ecx, dword [eax + 0x5556bc]
mov dword [0x43b1b0], edx
test ecx, ecx
jg 0x405b7e
mov dword [0x43b1b0], edx
cmp esi, edx
jne 0x405b1c
mov dword [0x43b25c], 5
jmp 0x408b7d
call fcn.00405310
mov eax, dword [0x43b1b4]
cmp eax, 1
jle 0x408b7d
mov eax, dword [0x43b1b0]
push eax
call fcn.00409720
add esp, 4
mov eax, dword [0x43b1b0]
mov dword [0x43b228], 1
mov ecx, eax
shl ecx, 6
sub ecx, eax
sub ecx, eax
mov dword [0x43b22c], 0
lea ecx, [ecx + ecx*8]
sub ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*8]
sub ecx, eax
mov eax, dword [ecx*4 + 0x5556c0]
test eax, eax
jg 0x405bdb
xor eax, eax
mov ecx, dword [0x5274dc]
dec ecx
test ecx, ecx
jg 0x405be8
xor ecx, ecx
cmp eax, ecx
jl 0x405bee
mov eax, ecx
mov dword [0x5274e0], eax
jmp 0x408b7d
mov dword [0x43b228], 1
mov dword [0x43b22c], 0
mov eax, dword [0x5274dc]
dec eax
test eax, eax
jg 0x405c18
xor eax, eax
mov ecx, dword [0x43b230]
test ecx, ecx
jg 0x405c24
xor ecx, ecx
cmp eax, ecx
jl 0x405c2a
mov eax, ecx
mov dword [0x5274e0], eax
jmp 0x408b7d
mov ecx, 0x4fd9a0
call fcn.00417da0
mov eax, dword [0x52849c]
test eax, eax
jg 0x405c65
mov eax, dword [0x5284a4]
test eax, eax
jne 0x405c65
mov dword [0x43b22c], 1
mov eax, dword [0x5274e0]
inc eax
mov dword [0x43b230], eax
mov eax, dword [0x52849c]
cmp eax, 2
jg 0x405f97
test eax, eax
jle 0x405f97
mov eax, dword [0x43b304]
test eax, eax
jne 0x405c9d
mov dword [0x43b308], 0xffffffff
mov eax, dword [0x43b224]
mov dword [0x43b304], eax
jmp 0x405f97
mov eax, dword [0x43b1b8]
mov ecx, dword [0x528e14]
cmp ecx, eax
je 0x405cb6
mov eax, dword [0x43b224]
mov dword [0x43b304], eax
mov esi, dword [0x43b224]
mov eax, dword [0x43b304]
sub esi, eax
mov ecx, dword [0x43b308]
mov edi, 0x1130
mov eax, esi
cdq
idiv edi
mov dword [0x43b308], eax
cmp ecx, eax
je 0x405d11
mov eax, esi
mov ecx, 0xea60
shl eax, 6
sub eax, esi
cdq
idiv ecx
push eax
push 0
call fcn.00424be0
cdq
idiv dword [0x43b21c]
sub esp, 4
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
push 0x17
fstp dword [esp + 4]
call fcn.00408dc0
add esp, 0x10
cmp esi, 0xea60
jle 0x405f97
mov ecx, 0x4fcba0
xor esi, esi
call fcn.00418bf0
push 0x3f
push esi
push esi
push 0x18
call fcn.00408dc0
fild dword [0x43b21c]
add esp, 0x10
push 0x3f
push esi
sub esp, 4
fstp dword [esp]
push 0x18
call fcn.00408dc0
add esp, 0x10
mov ecx, 0x4fcba0
push 0x3f
push 0x18
call fcn.004189c0
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul qword [0x432100]
call fcn.00425004
push eax
mov eax, dword [0x43b21c]
cdq
sub eax, edx
sub esp, 4
sar eax, 1
xor edi, edi
push 0x18
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp dword [esp + 4]
call fcn.00408dc0
mov dword [ebp - 0x10], 0x13
add esp, 0x10
mov eax, dword [0x5274e0]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea edx, [eax + eax*4]
lea ebx, [ecx + edx*2]
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
jg 0x405db8
xor ecx, ecx
cmp ecx, 0x13
jl 0x405dc2
mov ecx, 0x13
mov dword [ebp - 0x18], esi
mov eax, edx
test eax, eax
jg 0x405dcd
xor eax, eax
cmp eax, 0x13
jl 0x405dd7
mov eax, 0x13
shl eax, 2
lea eax, [eax + eax*4]
add eax, ecx
add eax, ebx
mov eax, dword [eax*4 + 0x4fd9a4]
test eax, eax
je 0x405e01
jl 0x405e0c
cmp eax, 0x3e8
jge 0x405e0c
mov esi, dword [eax*4 + 0x5274fc]
cmp esi, 2
jne 0x405e0c
inc edx
cmp edx, 0x14
jl 0x405dc5
mov esi, dword [ebp - 0x18]
jmp 0x405e11
mov esi, edx
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
jns 0x405dad
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x405e5a
push 0
mov dword [ebp - 0x10], edi
fild dword [ebp - 0x10]
push 0
mov dword [ebp - 0x10], esi
fild dword [ebp - 0x10]
sub esp, 4
mov ecx, eax
fxch st(1)
fstp dword [esp]
sub esp, 4
fstp dword [esp]
push 0
push 0
push 7
call fcn.00401e30
jmp 0x405e5c
xor eax, eax
test eax, eax
je 0x405e8b
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x405e78
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x405e7f
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
mov ebx, 0x20
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
mov eax, 0
je 0x405f34
call fcn.00424be0
mov ecx, 0x258
sub esp, 4
cdq
idiv ecx
sub edx, 0x12c
mov dword [ebp - 0x18], edx
fild dword [ebp - 0x18]
fstp dword [esp]
call fcn.00424be0
mov ecx, 0x258
sub esp, 4
cdq
idiv ecx
sub edx, 0x12c
lea eax, [edi + edi*2]
sub esp, 4
lea ecx, [esi*2]
lea eax, [eax + eax*4]
sub esp, 4
add eax, 0x2f
mov dword [ebp - 0x18], edx
fild dword [ebp - 0x18]
lea edx, [ecx + ecx*2]
push 0
push 0x3e8
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fxch st(1)
fstp dword [esp + 0x10]
fstp dword [esp + 0xc]
lea eax, [edx + edx*4]
push 5
add eax, 0x23
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
fstp dword [esp + 0xc]
call fcn.00401e30
test eax, eax
je 0x405f63
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x405f50
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x405f57
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
dec ebx
jne 0x405e90
push 1
push 0
call fcn.0040a4e0
add esp, 8
push eax
push edi
push esi
call fcn.0040bda0
add esp, 0xc
push 0
push edi
push esi
call fcn.0040a5d0
mov dword [0x43b304], 0
add esp, 0xc
xor ebx, ebx
mov esi, 0x14
xor edi, edi
mov eax, dword [0x43b2dc]
shl eax, 2
cmp eax, ebx
jle 0x406068
mov ecx, dword [0x43b2f0]
test ecx, ecx
jg 0x405fbc
xor ecx, ecx
cmp ecx, 0x13
jl 0x405fc6
mov ecx, 0x13
shl ecx, 2
mov eax, dword [0x43b2f4]
test eax, eax
nop
lea ecx, [ecx + ecx*4]
jg 0x405fd8
xor eax, eax
cmp eax, 0x13
jl 0x405fe2
mov eax, 0x13
add ecx, eax
mov eax, dword [0x5274e0]
mov edx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
add ecx, edx
mov eax, dword [ecx*4 + 0x4fd9a4]
test eax, eax
jl 0x406038
cmp eax, 0x3e8
jge 0x406038
mov ecx, dword [eax*4 + 0x5274fc]
cmp ecx, 1
jne 0x406038
push 1
push eax
call fcn.0040a4e0
add esp, 8
mov ecx, dword [0x43b2f0]
push eax
mov eax, dword [0x43b2f4]
push eax
push ecx
call fcn.0040bda0
add esp, 0xc
mov eax, dword [0x43b2f0]
inc eax
mov dword [0x43b2f0], eax
cmp eax, esi
jl 0x406062
mov eax, dword [0x43b2f4]
mov dword [0x43b2f0], edi
inc eax
mov dword [0x43b2f4], eax
cmp eax, esi
jl 0x406062
mov dword [0x43b2f4], edi
inc ebx
jmp 0x405fa0
mov eax, dword [0x528e18]
test eax, eax
je 0x406162
mov eax, dword [0x4f8948]
test eax, eax
jg 0x406080
xor eax, eax
cmp eax, 0x13
jl 0x40608a
mov eax, 0x13
mov esi, 0x12
mov dword [0x4f8948], eax
mov eax, dword [0x4f8948]
test esi, esi
jl 0x406146
test eax, eax
jg 0x4060a7
xor eax, eax
cmp eax, 0x13
jl 0x4060b1
mov eax, 0x13
shl eax, 2
mov ecx, dword [0x5274e0]
lea edx, [eax + eax*4]
mov eax, ecx
lea ecx, [ecx + ecx*4]
shl ecx, 3
lea ebx, [ecx + ecx*4]
lea ecx, [eax + ebx*2]
mov eax, esi
test eax, eax
jg 0x4060d3
xor eax, eax
cmp eax, 0x13
jl 0x4060dd
mov eax, 0x13
add eax, edx
add eax, ecx
mov eax, dword [eax*4 + 0x4fd9a4]
test eax, eax
je 0x406140
lea edi, [esi + 1]
mov ebx, edi
test ebx, ebx
jg 0x4060f7
xor ebx, ebx
cmp ebx, 0x13
jl 0x406101
mov ebx, 0x13
add ebx, edx
add ebx, ecx
mov edx, dword [ebx*4 + 0x4fd9a4]
lea ecx, [ebx*4 + 0x4fd9a4]
test edx, edx
jne 0x406140
test eax, eax
jl 0x40612d
push eax
push edi
mov eax, dword [0x4f8948]
push eax
call fcn.0040bda0
add esp, 0xc
jmp 0x40612f
mov dword [ecx], eax
push 0
mov eax, dword [0x4f8948]
push esi
push eax
call fcn.0040bda0
add esp, 0xc
dec esi
jmp 0x406094
dec eax
mov dword [0x4f8948], eax
jns 0x406162
mov dword [0x4f8948], 0x14
mov dword [0x528e18], 0
mov eax, dword [0x43b238]
test eax, eax
je 0x4061b8
mov eax, dword [0x4fcb90]
cmp eax, str.Game_Paused
je 0x406186
push str.Game_Paused
mov ecx, 0x4fcb90
call fcn.0040d050
mov eax, dword [0x4fcb98]
cmp eax, str.Hit_P_to_continue
je 0x4061a1
push str.Hit_P_to_continue
mov ecx, 0x4fcb98
call fcn.0040d050
mov eax, dword [0x43b224]
push 1
add eax, 0x3e8
mov dword [0x43b314], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x43b1e0]
test eax, eax
je 0x406336
mov eax, dword [0x43b1f4]
test eax, eax
jne 0x406336
mov eax, dword [0x5284a4]
test eax, eax
jne 0x406336
mov eax, dword [0x43b238]
test eax, eax
jne 0x406336
call fcn.004057c0
mov eax, dword [0x52c660]
test eax, eax
je 0x40632c
mov eax, dword [0x5284b0]
cmp eax, 6
jge 0x40632c
push 0x3f
mov eax, dword [0x43b2e4]
push 0
push eax
push 0x10
call fcn.00408dc0
add esp, 0x10
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x406275
fld dword [0x43b2e8]
fsub dword [0x43210c]
fld dword [0x52aeec]
fmul qword [0x432110]
push 0xc3c80000
push 0
sub esp, 4
fadd dword [0x43b2e4]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov ecx, eax
fstp dword [esp]
push 0
push 0
push 3
call fcn.00401e30
jmp 0x406277
xor eax, eax
test eax, eax
je 0x4062a6
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x406293
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x40629a
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x4062fb
fld dword [0x43b2e8]
fsub dword [0x43210c]
fld dword [0x52aeec]
fmul qword [0x432118]
push 0xc3c80000
push 0
sub esp, 4
fadd dword [0x43b2e4]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov ecx, eax
fstp dword [esp]
push 0
push 0
push 3
call fcn.00401e30
jmp 0x4062fd
xor eax, eax
test eax, eax
je 0x40632c
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x406319
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x406320
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
mov dword [0x43b1e0], 0
mov eax, dword [0x43b244]
cmp eax, 0x64
jg 0x406359
cmp eax, 0xa
jle 0x406368
mov eax, dword [0x43b224]
mov ecx, dword [0x43b248]
sub eax, ecx
cmp eax, 0xea60
jbe 0x406368
mov dword [0x43b244], 0
call fcn.0040c970
mov eax, dword [0x4fcb88]
xor esi, esi
mov ecx, dword [0x5284a4]
mov dword [0x52aee4], eax
mov dword [0x4fcb88], esi
mov dword [0x5284b0], esi
cmp ecx, esi
je 0x406602
mov eax, dword [0x43b1bc]
cmp eax, esi
jg 0x40647f
mov eax, dword [0x43b1b4]
cmp eax, 1
jle 0x4063e8
mov eax, dword [0x43b1b0]
lea ecx, [ebp - 0x24]
inc eax
push eax
push ecx
call fcn.0040d9e0
add esp, 8
mov ecx, dword [ebp - 0x34]
or ecx, 1
lea edx, [ebp - 0x1c]
push eax
mov dword [ebp - 0x34], ecx
push 0x43b734
mov dword [ebp - 4], esi
push edx
call fcn.0040d4c0
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 4], 1
or ecx, 2
mov dword [ebp - 0x34], ecx
jmp 0x406400
push 0x43b73c
lea ecx, [ebp - 0x14]
call fcn.0040cf00
mov dword [ebp - 4], 2
or dword [ebp - 0x34], 4
mov esi, dword [eax]
test esi, esi
jne 0x40640b
mov esi, 0x432284
mov eax, dword [0x4fcb90]
cmp eax, str.Game_Over
je 0x406426
push str.Game_Over
mov ecx, 0x4fcb90
call fcn.0040d050
mov eax, dword [0x4fcb98]
cmp esi, eax
je 0x40643a
push esi
mov ecx, 0x4fcb98
call fcn.0040d050
mov dword [ebp - 4], 1
mov eax, dword [0x43b224]
inc eax
mov dword [0x43b314], eax
call fcn.0040659b
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x34]
and ecx, 0xfffffffb
mov dword [ebp - 0x34], ecx
call fcn.0040658b
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x34]
and ecx, 0xfffffffd
mov dword [ebp - 0x34], ecx
call fcn.0040657b
and dword [ebp - 0x34], 0xfffffffe
mov eax, dword [0x43b224]
mov ecx, dword [0x528e10]
sub eax, ecx
fld dword [0x432124]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul dword [0x432120]
fmul st(1), st(0)
fxch st(1)
fsubr dword [0x432124]
call fcn.00425004
fcomp dword [0x432128]
mov dword [0x52a138], eax
fnstsw ax
test ah, 0x41
jne 0x40660c
xor esi, esi
mov eax, dword [0x43b1b0]
push eax
mov dword [0x5284a4], esi
call fcn.00409660
add esp, 4
mov edx, dword [0x43b1b0]
mov dword [0x43b1f4], 1
mov edi, edx
inc edx
mov eax, dword [0x43b1b4]
mov dword [0x43b1b0], edx
cmp eax, edx
jg 0x406502
xor edx, edx
mov eax, edx
mov ecx, dword [0x5274dc]
shl eax, 6
sub eax, edx
sub eax, edx
lea eax, [eax + eax*8]
sub eax, edx
shl eax, 3
lea eax, [eax + eax*8]
sub eax, edx
shl eax, 2
cmp dword [eax + 0x5556c0], ecx
jge 0x406539
mov ecx, dword [eax + 0x5556bc]
mov dword [0x43b1b0], edx
test ecx, ecx
jg 0x4065ab
mov dword [0x43b1b0], edx
cmp edi, edx
jne 0x4064f0
mov ecx, 0x5556c0
mov eax, 5
mov dword [0x43b25c], 4
mov edx, dword [0x5274dc]
mov ebx, dword [ecx]
cmp ebx, edx
jl 0x406568
mov dword [0x43b25c], eax
add ecx, 0x2729c
cmp ecx, 0x5f2130
jb 0x406557
jmp 0x408b7d
call fcn.00405310
mov eax, dword [0x43b1b4]
cmp eax, 1
jle 0x408b7d
mov eax, dword [0x43b1b0]
push eax
call fcn.00409720
add esp, 4
mov eax, dword [0x43b1b0]
mov ecx, eax
shl ecx, 6
sub ecx, eax
sub ecx, eax
mov dword [0x43b22c], 1
lea ecx, [ecx + ecx*8]
sub ecx, eax
shl ecx, 3
lea ecx, [ecx + ecx*8]
sub ecx, eax
mov eax, dword [ecx*4 + 0x5556c0]
mov dword [0x43b230], eax
jmp 0x408b7d
mov dword [0x52a138], 0x100
mov dword [0x52aea4], 0
mov ebx, 0x52a0d0
test ebx, ebx
je 0x40784d
mov eax, dword [ebx + 0x40]
cmp eax, 7
ja case.default.0x40662f
jmp dword [eax*4 + 0x408bd0]
mov dword [ebx + 0x34], 0x52c668
mov eax, dword [0x5284b4]
test eax, eax
jne 0x406654
mov eax, dword [0x43b23c]
test eax, eax
mov eax, 0
je 0x406659
mov eax, 1
mov ecx, dword [0x52c660]
lea ecx, [eax + ecx*2]
cmp ecx, 2
jl 0x40666c
mov ecx, 2
shl ecx, 2
mov edi, 0x64
mov eax, dword [0x43b300]
cdq
idiv edi
cdq
lea esi, [ecx + ecx*4]
xor eax, edx
sub eax, edx
mov ecx, 4
and eax, 3
mov dword [ebx + 0x38], esi
xor eax, edx
sub eax, edx
sub ecx, dword [0x4fcbd0]
lea eax, [eax + ecx*4]
lea ecx, [eax + esi]
mov dword [ebx + 0x38], ecx
test ecx, ecx
jle 0x4066d3
mov eax, dword [0x52cfc0]
cmp ecx, eax
jge 0x4066d3
mov eax, dword [0x52cfb8]
test eax, eax
je 0x4066d3
lea eax, [ecx + ecx*8]
lea edx, [ecx + eax*4]
lea eax, [ecx + edx*4]
mov edx, dword [0x52cfb8]
shl eax, 4
lea edx, [eax + edx - 0x950]
jmp 0x4066d8
mov edx, 0x52c668
mov eax, dword [edx + 0x4c]
cmp eax, 1
jle 0x4066e7
mov eax, dword [edx + 0x48]
test eax, eax
jne 0x4066e9
mov eax, edx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
test ecx, ecx
fstp dword [ebx + 0x2c]
fld dword [ebx + 0x2c]
fmul dword [0x43212c]
fstp dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov dword [0x52aeec], edx
jle 0x40673a
mov eax, dword [0x52cfc0]
cmp ecx, eax
jge 0x40673a
mov eax, dword [0x52cfb8]
test eax, eax
je 0x40673a
lea edx, [ecx + ecx*8]
lea eax, [ecx + edx*4]
lea edx, [ecx + eax*4]
mov eax, dword [0x52cfb8]
shl edx, 4
lea eax, [edx + eax - 0x950]
jmp 0x40673f
mov eax, 0x52c668
mov ecx, dword [eax + 0x4c]
cmp ecx, 1
jle 0x40674e
mov ecx, dword [eax + 0x48]
test ecx, ecx
jne 0x406750
mov ecx, eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fstp dword [ebx + 0x30]
mov ecx, dword [0x5284a4]
test ecx, ecx
jne case.default.0x40662f
mov eax, dword [0x43b238]
test eax, eax
jne case.default.0x40662f
fld dword [ebp - 0x10]
fadd dword [0x432130]
fstp dword [ebp - 0x10]
fld dword [ebx + 0x2c]
fmul dword [0x432134]
mov eax, dword [0x43b21c]
sub eax, 0x14
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
faddp st(1)
fild dword [0x43b1d0]
fld dword [ebp - 0x10]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x4067b0
fxch st(1)
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x4067bd
fxch st(1)
fstp st(0)
fstp dword [ebx + 0xc]
mov dword [ebx + 0x10], 0x43e60000
fld dword [ebp - 0x10]
call fcn.00425004
mov dword [0x43b1e4], eax
mov eax, dword [ebx + 0xc]
mov dword [0x43b2e4], eax
mov dword [0x43b2e8], 0x43e60000
jmp case.default.0x40662f
inc dword [0x52aea4]
mov esi, dword [ebx + 0x44]
fild dword [esi*4 + 0x432050]
fst dword [ebx + 0x2c]
fstp dword [ebx + 0x30]
fld dword [ebx + 0x1c]
fmul dword [ebx + 0x1c]
fld dword [ebx + 0x20]
fmul dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov dword [0x43b250], eax
mov dword [0x43b254], edx
faddp st(1)
fsqrt
fmul qword [0x432140]
call fcn.00425004
mov ecx, 0x64
mov edx, dword [0x4fcbd0]
mov dword [0x43b1a8], eax
test edx, edx
jg 0x406848
mov ecx, 0x96
test esi, esi
jg 0x40684f
add ecx, 0x32
mov eax, dword [0x43b1a8]
push ebx
imul eax, ecx
cdq
mov ecx, 0x64
idiv ecx
mov dword [0x43b1a8], eax
call fcn.0040ad80
add esp, 4
test eax, eax
je 0x406956
push 0
push ebx
call fcn.0040b010
add esp, 8
mov eax, dword [0x52aee0]
test eax, eax
jne 0x406956
mov esi, 6
mov eax, dword [0x52aee4]
cmp eax, 0x20
jge 0x40694f
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
mov edi, eax
mov eax, 0
test edi, edi
je 0x406920
call fcn.00424be0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x432148]
fiadd dword [ebp - 0x10]
fsub dword [0x43214c]
fstp dword [esp]
call fcn.00424be0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov ecx, edi
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x432148]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push eax
push edx
fiadd dword [ebp - 0x10]
push 0
push 0
push 5
fsub dword [0x43214c]
fstp dword [esp + 0x14]
call fcn.00401e30
test eax, eax
je 0x40694f
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x40693c
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x406943
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
dec esi
jne 0x406892
mov eax, dword [0x5284b8]
test eax, eax
je 0x406a98
mov eax, dword [0x43b224]
mov ecx, dword [ebx + 0x6c]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x19
jle 0x406a98
mov eax, dword [0x52aee4]
cmp eax, 0x20
jge 0x406a90
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
mov esi, eax
mov eax, 0
test esi, esi
je 0x406a61
call fcn.00424be0
cdq
mov ecx, 0x32
sub esp, 4
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x432150]
fiadd dword [ebp - 0x10]
fsub dword [0x432154]
fstp dword [esp]
call fcn.00424be0
cdq
mov ecx, 0x32
sub esp, 4
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x432150]
fiadd dword [ebp - 0x10]
fsub dword [0x432154]
fstp dword [esp]
call fcn.00424be0
fld dword [ebx + 0x30]
mov edi, eax
call fcn.00425004
mov ecx, eax
mov eax, edi
cdq
idiv ecx
sub esp, 4
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x30]
fmul dword [0x43212c]
fisubr dword [ebp - 0x10]
fadd dword [ebx + 0x10]
fstp dword [esp]
call fcn.00424be0
fld dword [ebx + 0x2c]
mov edi, eax
call fcn.00425004
mov ecx, eax
mov eax, edi
cdq
idiv ecx
sub esp, 4
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x2c]
fmul dword [0x43212c]
push 0
mov ecx, esi
push 0
push 5
fisubr dword [ebp - 0x10]
fadd dword [ebx + 0xc]
fstp dword [esp + 0xc]
call fcn.00401e30
test eax, eax
je 0x406a90
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x406a7d
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x406a84
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
mov eax, dword [0x43b224]
mov dword [ebx + 0x6c], eax
mov esi, 0xffffffff
mov eax, dword [ebx + 0x48]
test al, 1
je 0x406ae5
mov eax, dword [ebx + 0x60]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fadd dword [0x43b2e4]
fstp dword [ebx + 0xc]
fld dword [ebx + 0x30]
fmul dword [0x432134]
fadd dword [0x43b2e8]
fstp dword [ebx + 0x10]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [0x43b23c], 2
jmp case.default.0x40662f
fld dword [ebx + 0x30]
fmul dword [0x432134]
fadd dword [0x43b2e8]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x406d86
fld dword [ebx + 0x2c]
fmul dword [0x432134]
fsub dword [0x52aeec]
fadd dword [0x43b2e4]
fcom dword [ebx + 0xc]
fstp dword [ebp - 0x10]
fnstsw ax
test ah, 1
je 0x406d86
fld dword [ebx + 0xc]
fcomp dword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x406d86
fld dword [ebx + 0x2c]
fmul dword [0x43212c]
fadd dword [0x52aeec]
fadd dword [0x43b2e4]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x406d86
mov eax, dword [0x5284a4]
test eax, eax
jne 0x406d86
mov ecx, dword [0x43b224]
mov edx, dword [0x43b2d4]
mov eax, ecx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xc8
jle 0x406bde
fld dword [ebx + 0xc]
fsub dword [0x43b2e4]
fld dword [0x52aeec]
fmul dword [0x432158]
fxch st(1)
fabs
fxch st(1)
fcompp
mov esi, 0
fnstsw ax
test ah, 0x41
je 0x406bb3
mov esi, 0xf
mov eax, dword [0x4fbd90]
mov dword [0x43b2d4], ecx
test eax, eax
je 0x406bde
push 0x3f
mov eax, dword [ebx + 0xc]
mov dword [0x528e18], 1
push 0
push eax
push 0x13
call fcn.00408dc0
add esp, 0x10
fld dword [ebx + 0x1c]
fmul dword [ebx + 0x1c]
fld dword [ebx + 0x20]
fmul dword [ebx + 0x20]
faddp st(1)
fsqrt
fstp dword [ebp - 0x10]
fld dword [ebx + 0xc]
fsub dword [0x43b2e4]
fst dword [ebp - 0x20]
fdiv dword [0x52aeec]
fmul dword [0x4320f4]
fld dword [0x4320f8]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x406c1a
fxch st(1)
fstp st(0)
fld dword [0x4320f4]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x406c2d
fxch st(1)
fstp st(0)
fst dword [ebp - 0x2c]
fsin
fmul dword [ebp - 0x10]
fstp dword [ebx + 0x1c]
fld dword [ebp - 0x2c]
fcos
fmul dword [ebp - 0x10]
fchs
fstp dword [ebx + 0x20]
fld dword [ebp - 0x20]
fstp qword [ebp - 0x24]
fld dword [0x52aeec]
fmul dword [0x432158]
fld qword [ebp - 0x24]
fabs
fcompp
fnstsw ax
test ah, 1
je 0x406d86
fld dword [ebx + 0x30]
fmul dword [0x432134]
cmp dword [0x5284b4], 0
fadd dword [0x43b2e8]
je 0x406cb8
fstp dword [ebx + 0x10]
mov eax, dword [0x43b240]
test eax, eax
jne 0x406cbb
mov eax, dword [ebx + 0x48]
or eax, 1
mov dword [ebx + 0x48], eax
mov esi, 0x11
fld qword [ebp - 0x24]
call fcn.00425004
mov dword [ebx + 0x60], eax
fld dword [ebp - 0x10]
call fcn.00425004
mov dword [ebx + 0x64], eax
jmp 0x406d86
fstp dword [ebx + 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x43c80000
jle 0x406d86
push 0x3f
mov eax, dword [ebx + 0xc]
push 0
mov edi, 8
push eax
push 0xe
call fcn.00408dc0
add esp, 0x10
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
mov eax, 0
je 0x406d50
call fcn.00424be0
mov ecx, 0xc8
sub esp, 4
cdq
idiv ecx
sub edx, 0xc8
mov dword [ebp - 0x20], edx
fild dword [ebp - 0x20]
fstp dword [esp]
call fcn.00424be0
mov ecx, 0x190
sub esp, 4
cdq
idiv ecx
sub edx, 0xc8
mov dword [ebp - 0x20], edx
fild dword [ebp - 0x20]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
push eax
push ecx
push 0
mov ecx, dword [ebp - 0x10]
fstp dword [esp + 0xc]
push 0
push 5
call fcn.00401e30
test eax, eax
je 0x406d7f
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x406d6c
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x406d73
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
dec edi
jne 0x406ce0
fld dword [ebx + 0x2c]
fmul dword [0x43212c]
fadd dword [0x432130]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x406dc1
mov eax, dword [ebx + 0x1c]
cmp eax, 0x80000000
jbe 0x406dc1
fld dword [ebx + 0x1c]
fabs
mov esi, 4
push 0
fstp dword [ebx + 0x1c]
push ebx
call fcn.0040b010
add esp, 8
fld dword [ebx + 0x2c]
fmul dword [0x432134]
mov eax, dword [0x43b21c]
sub eax, 0x14
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
faddp st(1)
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 1
je 0x406e05
mov eax, dword [ebx + 0x1c]
test eax, eax
jle 0x406e05
fld dword [ebx + 0x1c]
fabs
fchs
mov esi, 4
push 0
fstp dword [ebx + 0x1c]
push ebx
call fcn.0040b010
add esp, 8
fld dword [ebx + 0x30]
fmul dword [0x43212c]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x406e3a
mov eax, dword [ebx + 0x20]
cmp eax, 0x80000000
jbe 0x406e3a
fld dword [ebx + 0x20]
fabs
mov esi, 4
push 0
fstp dword [ebx + 0x20]
push ebx
call fcn.0040b010
add esp, 8
fild dword [0x43b220]
fld dword [ebx + 0x30]
fmul dword [0x432134]
faddp st(1)
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x406e68
mov eax, dword [ebx + 0x20]
test eax, eax
jle 0x406e68
mov dword [ebx + 0x5c], 1
mov esi, 5
fld dword [ebx + 0x20]
fabs
fcomp dword [0x432160]
fnstsw ax
test ah, 1
je 0x406e93
call fcn.00424be0
cdq
mov ecx, 0x64
idiv ecx
sub edx, 0x32
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fstp dword [ebx + 0x20]
test esi, esi
jl case.default.0x40662f
push esi
mov ecx, 0x4fcba0
call fcn.004189c0
mov ecx, dword [ebx + 0x44]
test ecx, ecx
jg 0x406eaf
add eax, eax
cmp ecx, 1
jle 0x406eb9
cdq
sub eax, edx
sar eax, 1
push 0x3f
push eax
mov eax, dword [ebx + 0xc]
push eax
push esi
call fcn.00408dc0
add esp, 0x10
jmp case.default.0x40662f
fld dword [0x43b2e0]
fmul dword [0x432164]
lea eax, [ebx + 0x20]
lea ecx, [ebx + 0x2c]
mov dword [0x43b2ac], 2
mov dword [ebp - 0x20], eax
fadd dword [eax]
fstp dword [eax]
lea eax, [ebx + 0x30]
mov dword [ebp - 0x2c], ecx
mov edx, dword [0x52a564]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
fstp dword [ecx]
mov edx, dword [0x52a568]
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fstp dword [eax]
fld dword [ebx + 0x2c]
fmul dword [0x43212c]
fadd dword [0x432130]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x406f57
mov eax, dword [ebx + 0x1c]
lea esi, [ebx + 0x1c]
cmp eax, 0x80000000
jbe 0x406f57
push 0x3f
mov eax, dword [ebx + 0xc]
push 0
push eax
push 4
call fcn.00408dc0
fld dword [esi]
fabs
add esp, 0x10
fstp dword [esi]
mov eax, dword [ebp - 0x40]
fld dword [eax]
fmul dword [0x432134]
fadd dword [0x43b2e8]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x407502
fld dword [0x43b2e4]
fsub dword [0x52aeec]
fcom dword [ebx + 0xc]
fstp dword [ebp - 0x38]
fnstsw ax
test ah, 1
je 0x407502
mov ecx, dword [ebx + 0x44]
lea esi, [ebx + 0x44]
cmp ecx, 0xd
jne 0x406fa7
mov dword [ebp - 0x10], 0
jmp 0x406fb5
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fmul dword [0x43212c]
fstp dword [ebp - 0x10]
fld dword [ebp - 0x38]
fsub dword [ebp - 0x10]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 1
je 0x407502
cmp ecx, 0xd
jne 0x406fd7
mov dword [ebp - 0x10], 0
jmp 0x406fe5
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fmul dword [0x43212c]
fstp dword [ebp - 0x10]
fld dword [0x52aeec]
fadd dword [0x43b2e4]
fadd dword [ebp - 0x10]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x407502
mov eax, dword [0x5284a4]
test eax, eax
jne 0x407502
mov eax, dword [0x43b1b8]
push 0x3f
add eax, 0x32
push 0
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x48]
push ecx
mov edi, 0x52a0d0
push edx
mov dword [0x43b1b8], eax
call fcn.00408dc0
add esp, 0x10
mov eax, dword [esi]
cmp eax, 0x14
ja case.default.0x407040
jmp dword [eax*4 + 0x408bf0]
call fcn.004057c0
mov dword [0x43b234], 1
mov dword [0x5284b4], 0
mov dword [0x52c660], 0
inc dword [0x43b1bc]
jmp case.default.0x407040
mov dword [0x43b22c], 1
mov eax, dword [0x5274e0]
inc eax
mov dword [0x43b230], eax
jmp case.default.0x407040
call fcn.0040c970
jmp case.default.0x407040
call fcn.004057c0
mov esi, dword [0x52a0d8]
test esi, esi
je 0x4070c9
mov edi, 1
mov eax, dword [esi + 0x40]
cmp eax, edi
jne 0x4070c2
push 0x43160000
push esi
call fcn.0040b010
add esp, 8
mov esi, dword [esi + 8]
test esi, esi
jne 0x4070ad
mov dword [0x52aee0], 0
mov dword [0x5284b8], 0
jmp case.default.0x407040
mov ecx, dword [0x5274e0]
mov eax, ecx
lea ecx, [ecx + ecx*4]
shl ecx, 3
lea edx, [eax + ecx*8]
lea ecx, [edx + edx*4]
sub ecx, eax
lea esi, [ecx + 0x4fd9a0]
cmp esi, 0x524c30
je 0x40711c
mov eax, dword [esi]
add esi, 4
mov edi, 0x524c34
mov ecx, 0x190
mov dword [0x524c30], eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
add eax, ecx
mov edi, dword [eax*4 + 0x524c34]
test edi, edi
jl 0x4071a7
cmp edi, 0x3e8
jge 0x4071a7
mov eax, dword [edi*4 + 0x5274fc]
cmp eax, 1
jne 0x4071a7
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
dec esi
add eax, 2
mov dword [ebp - 0x44], eax
cmp esi, eax
jge 0x4071a7
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x48], eax
push edi
mov eax, dword [ebp - 0x4c]
push eax
push esi
call fcn.0040bda0
add esp, 0xc
mov eax, dword [ebp - 0x10]
push edi
push eax
push esi
call fcn.0040bda0
add esp, 0xc
mov eax, dword [ebp - 0x48]
push edi
push eax
push esi
call fcn.0040bda0
add esp, 0xc
inc esi
cmp esi, dword [ebp - 0x44]
jl 0x407177
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x14
jl 0x407131
add dword [ebp - 0x38], 0x14
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
cmp eax, 0x190
jl 0x40712a
jmp case.default.0x407040
mov dword [0x52aee0], 1
jmp case.default.0x407040
xor edi, edi
xor esi, esi
cmp esi, 0x14
jge 0x407258
mov ecx, edi
test ecx, ecx
jg 0x4071f1
xor ecx, ecx
cmp ecx, 0x13
jl 0x4071fb
mov ecx, 0x13
shl ecx, 2
mov eax, esi
test eax, eax
nop
lea ecx, [ecx + ecx*4]
jg 0x40720a
xor eax, eax
cmp eax, 0x13
jl 0x407214
mov eax, 0x13
add ecx, eax
mov eax, dword [0x5274e0]
mov edx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
add ecx, edx
mov eax, dword [ecx*4 + 0x4fd9a4]
test eax, eax
jl 0x407255
cmp eax, 0x3e8
jge 0x407255
mov ecx, dword [eax*4 + 0x5274fc]
cmp ecx, 1
jne 0x407255
push 1
push esi
push edi
call fcn.0040a5d0
add esp, 0xc
inc esi
jmp 0x4071e4
inc edi
cmp edi, 0x14
jl 0x4071e2
jmp case.default.0x407040
mov dword [0x5284b8], 1
call fcn.004057c0
jmp case.default.0x407040
mov dword [0x52c660], 1
call fcn.004057c0
jmp case.default.0x407040
mov dword [0x5284b4], 1
jmp case.default.0x407040
mov eax, dword [0x4fcbd0]
inc eax
cmp eax, 4
jl 0x4072aa
mov eax, 4
mov dword [0x4fcbd0], eax
call fcn.004057c0
jmp case.default.0x407040
call fcn.004057c0
mov esi, dword [0x52a0d8]
test esi, esi
je case.default.0x407040
xor edi, edi
mov eax, dword [esi + 0x40]
cmp eax, 1
jne 0x407340
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x407313
fld dword [esi + 0x20]
fchs
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0xc]
sub esp, 4
fstp dword [esp]
push edx
push ecx
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x44]
push edx
push ecx
push 1
mov ecx, eax
call fcn.00401e30
jmp 0x407315
xor eax, eax
test eax, eax
je 0x407340
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x407331
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x407334
mov dword [eax + 8], edi
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
mov esi, dword [esi + 8]
test esi, esi
jne 0x4072ce
jmp case.default.0x407040
call fcn.00405630
jmp case.default.0x407040
mov eax, dword [0x4fcbd0]
dec eax
test eax, eax
jg 0x407362
xor eax, eax
mov dword [0x4fcbd0], eax
call fcn.004057c0
jmp case.default.0x407040
call fcn.004057c0
mov esi, dword [0x52a0d8]
test esi, esi
je case.default.0x407040
mov edi, 1
mov eax, dword [esi + 0x40]
cmp eax, edi
jne 0x40739e
push 0x43fa0000
push esi
call fcn.0040b010
add esp, 8
mov esi, dword [esi + 8]
test esi, esi
jne 0x407389
jmp case.default.0x407040
mov dword [0x4fcbd0], 0
call fcn.004057c0
jmp case.default.0x407040
mov dword [0x4fbd90], 1
jmp case.default.0x407040
call fcn.004057c0
mov eax, dword [0x52a0d8]
test eax, eax
je case.default.0x407040
mov ecx, 1
xor edx, edx
mov esi, dword [eax + 0x40]
cmp esi, ecx
jne 0x4073f0
mov dword [eax + 0x44], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4073e6
jmp case.default.0x407040
call fcn.004057c0
mov eax, 1
mov edi, dword [edi + 8]
test edi, edi
je case.default.0x407040
mov ecx, dword [edi + 0x40]
cmp ecx, eax
jne 0x407406
mov dword [edi + 0x5c], 1
xor esi, esi
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x407495
fld qword [0x4320c8]
fmul qword [0x432178]
sub esp, 4
mov dword [ebp - 0x10], esi
fild dword [ebp - 0x10]
sub esp, 4
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
fmul dword [0x432170]
push ecx
push edx
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x44]
fmul qword [0x4320d0]
push ecx
push edx
push 1
mov ecx, eax
fadd st(1), st(0)
fxch st(1)
fst st(1)
fcos
fmul qword [0x432180]
fxch st(1)
fsin
fmul qword [0x432188]
fxch st(1)
fstp dword [esp + 0x18]
fstp dword [esp + 0x14]
call fcn.00401e30
jmp 0x407497
xor eax, eax
test eax, eax
je 0x4074c6
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x4074b3
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x4074ba
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
inc esi
cmp esi, 8
jl 0x407421
jmp case.default.0x407040
call fcn.004057c0
mov eax, dword [0x52a0d8]
test eax, eax
je case.default.0x407040
mov ecx, 1
mov edx, 2
mov esi, dword [eax + 0x40]
cmp esi, ecx
jne 0x4074f4
mov dword [eax + 0x44], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x4074ea
mov dword [ebx + 0x5c], 1
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fmul dword [0x43212c]
mov eax, dword [0x43b21c]
sub eax, 0x14
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fsubrp st(1)
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 1
je 0x40754b
mov eax, dword [ebx + 0x1c]
lea esi, [ebx + 0x1c]
test eax, eax
jle 0x40754b
push 0x3f
mov eax, dword [ebx + 0xc]
push 0
push eax
push 4
call fcn.00408dc0
fld dword [esi]
fabs
fchs
add esp, 0x10
fstp dword [esi]
mov eax, dword [ebp - 0x40]
fld dword [eax]
fmul dword [0x43212c]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x407586
mov eax, dword [ebp - 0x20]
cmp dword [eax], 0x80000000
jbe 0x407586
push 0x3f
mov eax, dword [ebx + 0xc]
push 0
push eax
push 4
call fcn.00408dc0
add esp, 0x10
mov eax, dword [ebp - 0x20]
fld dword [eax]
fabs
fstp dword [eax]
fild dword [0x43b220]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je case.default.0x40662f
mov eax, dword [ebp - 0x20]
cmp dword [eax], 0
jle case.default.0x40662f
jmp 0x40783b
mov eax, dword [0x5284b0]
push ebx
mov dword [ebx + 0x2c], 0x40400000
mov dword [ebx + 0x30], 0x41800000
mov dword [0x43b1a8], 8
inc eax
mov dword [0x5284b0], eax
call fcn.0040ad80
add esp, 4
test eax, eax
je 0x4076bc
mov eax, dword [0x52aee0]
test eax, eax
jne 0x4076bc
mov dword [ebx + 0x5c], 1
mov edi, 6
mov eax, dword [0x52aee4]
cmp eax, 0x20
jge 0x4076b5
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
mov esi, eax
mov eax, 0
test esi, esi
je 0x407686
call fcn.00424be0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x432148]
fiadd dword [ebp - 0x10]
fsub dword [0x43214c]
fstp dword [esp]
call fcn.00424be0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov ecx, esi
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x432148]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push eax
push edx
fiadd dword [ebp - 0x10]
push 0
push 0
push 5
fsub dword [0x43214c]
fstp dword [esp + 0x14]
call fcn.00401e30
test eax, eax
je 0x4076b5
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x4076a2
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x4076a9
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
dec edi
jne 0x4075f8
mov eax, dword [ebx + 0x10]
cmp eax, 0x80000000
jbe case.default.0x40662f
jmp 0x40783b
mov ecx, dword [0x43b224]
mov eax, dword [ebx + 0x60]
sub ecx, eax
mov esi, 0x100
mov eax, ecx
mov edi, 0x96
shl eax, 8
sub edx, edx
div edi
sub esi, eax
cmp ecx, edi
mov dword [ebx + 0x68], esi
jbe case.default.0x40662f
jmp 0x40783b
mov eax, dword [0x43b224]
mov ecx, dword [ebx + 0x6c]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
mov edx, dword [ebx + 0x44]
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fdivp st(1)
fcom qword [0x432198]
fstp dword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x407738
mov dword [ebx + 0x5c], 1
jmp 0x40774f
fld dword [0x432128]
fsub dword [ebp - 0x10]
fmul dword [0x4321a0]
call fcn.00425004
mov dword [ebx + 0x68], eax
mov eax, dword [0x4fcb88]
inc eax
mov dword [0x4fcb88], eax
jmp case.default.0x40662f
mov ecx, dword [0x43b224]
mov eax, dword [ebx + 0x60]
sub ecx, eax
mov esi, 0x190
mov eax, dword [0x432008]
sub edx, edx
dec eax
imul eax, ecx
div esi
mov dword [ebx + 0x38], eax
cmp ecx, 0x64
jbe 0x407817
mov eax, dword [ebx + 0x48]
test eax, eax
jne 0x407817
fld dword [ebx + 0xc]
call fcn.00425004
mov dword [ebp - 0x20], eax
fld dword [ebx + 0x10]
call fcn.00425004
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x20]
add eax, 2
dec esi
mov dword [ebp - 0x2c], eax
cmp esi, eax
jge 0x407810
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x38], eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
cmp eax, edi
jle 0x407808
mov eax, dword [ebp - 0x20]
cmp esi, eax
jne 0x4077e2
mov eax, dword [ebp - 0x10]
cmp edi, eax
je 0x407800
test esi, esi
jl 0x407800
test edi, edi
jl 0x407800
cmp esi, 0x14
jge 0x407800
cmp edi, 0x14
jge 0x407800
push 1
push edi
push esi
call fcn.0040a5d0
add esp, 0xc
inc edi
mov eax, dword [ebp - 0x38]
cmp edi, eax
jl 0x4077d4
inc esi
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jl 0x4077ca
mov dword [ebx + 0x48], 1
mov eax, dword [0x43b224]
mov ecx, dword [ebx + 0x60]
sub eax, ecx
cmp eax, 0x190
jbe case.default.0x40662f
jmp 0x40783b
mov eax, dword [0x43b224]
mov ecx, dword [ebx + 0x6c]
sub eax, ecx
cmp eax, 0x12c
jbe case.default.0x40662f
mov dword [ebx + 0x5c], 1
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x406623
mov eax, dword [0x43b2ac]
test eax, eax
jle 0x40785c
dec eax
mov dword [0x43b2ac], eax
mov eax, dword [0x43b23c]
test eax, eax
jle 0x40786b
dec eax
mov dword [0x43b23c], eax
mov eax, dword [0x43b240]
test eax, eax
jle 0x40787a
dec eax
mov dword [0x43b240], eax
mov eax, dword [0x52aea4]
test eax, eax
jg 0x407891
mov eax, dword [0x43b22c]
test eax, eax
jne 0x407891
call fcn.00405630
mov eax, dword [0x43b224]
mov ecx, dword [0x43b2d8]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x19
jl 0x407b0c
mov eax, dword [0x52aef8]
test eax, eax
je 0x407b0c
mov esi, eax
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
push 0x3f
push 0
lea edx, [edi*2]
lea eax, [edx + edx*2]
sub esp, 4
mov dword [ebp - 0x10], ecx
lea eax, [eax + eax*4]
add eax, 0x14
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fstp dword [esp]
call fcn.00424be0
and eax, 1
add eax, 0x15
push eax
call fcn.00408dc0
add esp, 0x10
mov ecx, dword [0x43b6f4]
mov dword [ebp - 0x20], 1
cmp ecx, 1
sbb eax, eax
neg eax
mov dword [0x43b6f4], eax
test eax, eax
jne 0x40791c
mov eax, dword [esi + 8]
test eax, eax
jne 0x407923
mov dword [ebp - 0x20], 0
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
je 0x407968
push 0
mov ecx, dword [ebp - 0x10]
push 0
mov dword [ebp - 0x2c], ecx
fild dword [ebp - 0x2c]
sub esp, 4
mov dword [ebp - 0x2c], edi
fild dword [ebp - 0x2c]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov edx, dword [ebp - 0x20]
mov ecx, eax
fstp dword [esp]
push 0
push edx
push 6
call fcn.00401e30
jmp 0x40796a
xor eax, eax
mov edx, 0x52a0d0
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x407985
xor ecx, ecx
mov edx, dword [edx + 8]
mov ebx, dword [edx + 8]
test ebx, ebx
jne 0x40797b
mov dword [edx + 8], eax
test eax, eax
je 0x407996
mov dword [eax + 4], edx
mov dword [eax + 8], 0
push 0x4320c0
push 0x70
call fcn.0041c620
add esp, 8
test eax, eax
jne 0x4079ad
xor eax, eax
jmp 0x407a29
push 0
mov ecx, dword [ebp - 0x10]
push 0
mov dword [ebp - 0x20], ecx
fild dword [ebp - 0x20]
sub esp, 4
mov dword [ebp - 0x20], edi
fild dword [ebp - 0x20]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov edx, edi
test edx, edx
fstp dword [esp]
push 0
jg 0x4079d8
xor edx, edx
cmp edx, 0x13
jl 0x4079e2
mov edx, 0x13
shl edx, 2
mov ecx, dword [ebp - 0x10]
test ecx, ecx
nop
lea edx, [edx + edx*4]
jg 0x4079f2
xor ecx, ecx
cmp ecx, 0x13
jl 0x4079fc
mov ecx, 0x13
add edx, ecx
mov ecx, dword [0x5274e0]
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 0x20]
lea ecx, [ecx + ecx*4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*2]
add edx, ecx
mov ecx, eax
mov ebx, dword [edx*4 + 0x4fd9a4]
push ebx
push 4
call fcn.00401e30
test eax, eax
je 0x407a58
mov ecx, dword [0x52a0d8]
test ecx, ecx
je 0x407a45
mov dword [ecx + 4], eax
mov ecx, dword [0x52a0d8]
mov dword [eax + 8], ecx
jmp 0x407a4c
mov dword [eax + 8], 0
mov dword [0x52a0d8], eax
mov dword [eax + 4], 0x52a0d0
mov edx, edi
test edx, edx
jg 0x407a60
xor edx, edx
cmp edx, 0x13
jl 0x407a6a
mov edx, 0x13
shl edx, 2
mov eax, dword [ebp - 0x10]
test eax, eax
nop
lea edx, [edx + edx*4]
jg 0x407a7a
xor eax, eax
cmp eax, 0x13
jl 0x407a84
mov eax, 0x13
add edx, eax
mov eax, dword [0x5274e0]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea ebx, [eax + eax*4]
lea ecx, [ecx + ebx*2]
add edx, ecx
mov eax, dword [edx*4 + 0x4fd9a4]
test eax, eax
je 0x407ad1
push 0
mov ecx, dword [ebp - 0x10]
push ecx
push edi
call fcn.0040bda0
add esp, 0xc
mov eax, dword [0x43b1b8]
add eax, 8
mov ecx, dword [ebp - 0x10]
push 0
mov dword [0x43b1b8], eax
push ecx
push edi
call fcn.004097e0
add esp, 0xc
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x407ade
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x407ae8
mov dword [eax + 4], ecx
mov dword [esi + 4], 0
mov dword [esi + 8], 0
test esi, esi
je 0x407b02
push 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, dword [0x43b224]
mov dword [0x43b2d8], eax
lea eax, [ebp - 0x74]
mov ecx, 0x52d058
push eax
call fcn.00415b80
test eax, eax
je 0x408acd
mov eax, dword [0x43b2f8]
mov ecx, dword [0x43b1f4]
inc eax
test ecx, ecx
mov dword [0x43b2f8], eax
je 0x407b71
push 0xff
push 0xff
push 0xff
call fcn.0040bfb0
add esp, 0xc
mov eax, dword [0x43b220]
mov ecx, dword [0x43b21c]
nop
push eax
push ecx
push 0
push 0
call fcn.0040b330
add esp, 0x10
mov eax, dword [0x43b1f4]
test eax, eax
jne 0x407bba
mov eax, dword [0x43b234]
test eax, eax
jne 0x407bba
mov eax, dword [0x43b1b8]
mov ecx, dword [0x528e14]
cmp ecx, eax
je 0x407cda
mov eax, dword [0x43b224]
mov ecx, dword [0x528e1c]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x19
jg 0x407bba
mov eax, dword [0x43b1b8]
mov ecx, dword [0x528e14]
sub eax, ecx
cmp eax, 0x32
jle 0x407cda
mov eax, dword [0x4fafc8]
mov ecx, dword [0x4fafc4]
push eax
mov edx, dword [0x4fafc0]
push ecx
mov eax, dword [0x4fafbc]
push edx
mov ecx, dword [0x4fafb8]
push eax
push ecx
mov ecx, 0x4fbde0
call fcn.004169a0
mov ecx, dword [0x43b1b8]
mov eax, dword [0x528e14]
mov dword [0x4fcb70], 1
cmp eax, ecx
jge 0x407c01
inc eax
jmp 0x407c06
mov eax, dword [0x43b1b8]
lea ecx, [ebp - 0x24]
mov dword [0x528e14], eax
mov eax, dword [0x528e14]
push eax
push ecx
call fcn.0040d9e0
mov dword [ebp - 4], 3
add esp, 8
mov eax, dword [eax]
test eax, eax
jne 0x407c2f
mov eax, 0x432284
push eax
mov ecx, 0x4fbde0
call fcn.00416d40
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], eax
call fcn.00408bc5
push 0
mov eax, dword [ebp - 0x10]
push 0x28
mov ecx, dword [0x4fafc4]
push eax
mov edx, dword [0x4fafc0]
push 0
mov eax, dword [0x4fafbc]
push 0x18
push 0
push 0x18
push ecx
push edx
mov ecx, dword [0x4fafb8]
push eax
push ecx
mov ecx, 0x52af08
call fcn.0040fd20
mov ecx, dword [0x528e14]
lea edx, [ebp - 0x24]
push ecx
push edx
call fcn.0040d9e0
mov dword [ebp - 4], 4
add esp, 8
mov eax, dword [eax]
test eax, eax
jne 0x407ca3
mov eax, 0x432284
push 2
mov ecx, 0x4fbde0
push 0x18
push eax
call fcn.00416b30
mov dword [ebp - 4], 0xffffffff
call fcn.00408bb3
push 0x28
mov eax, dword [ebp - 0x10]
push eax
push 0
push 0x18
call fcn.0040b330
add esp, 0x10
mov eax, dword [0x43b224]
mov dword [0x528e1c], eax
mov eax, dword [0x43b1f4]
test eax, eax
jne 0x407cf0
mov eax, dword [0x43b234]
test eax, eax
je 0x407f8e
mov eax, dword [0x4fafc8]
mov ecx, dword [0x4fafc4]
push eax
mov edx, dword [0x4fafc0]
push ecx
mov eax, dword [0x4fafbc]
push edx
mov ecx, dword [0x4fafb8]
push eax
push ecx
mov ecx, 0x52b8b8
call fcn.004169a0
mov dword [0x52c648], 1
mov ecx, dword [0x52cfc0]
cmp ecx, 0x10
jle 0x407d40
mov eax, dword [0x52cfb8]
test eax, eax
nop
lea ecx, [eax + 0x8bb0]
jne 0x407d45
mov ecx, 0x52c668
mov eax, dword [ecx + 0x4c]
cmp eax, 1
jle 0x407d56
mov eax, dword [ecx + 0x48]
test eax, eax
je 0x407d56
mov ecx, eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [0x43b1bc]
add eax, 4
dec ecx
imul eax, ecx
add eax, 0x28
mov dword [ebp - 0x20], eax
cmp eax, 0xc8
jg 0x407d78
mov eax, 0xc8
mov ecx, dword [0x43b21c]
push 0
sub ecx, eax
push 0x28
push eax
mov dword [ebp - 0x10], eax
push 0
mov edx, dword [0x4fafc4]
push ecx
mov eax, dword [0x4fafbc]
push 0
push ecx
push edx
mov ecx, dword [0x4fafc0]
push ecx
mov edx, dword [0x4fafb8]
push eax
mov ecx, 0x52af08
push edx
call fcn.0040fd20
mov eax, dword [0x43b1b0]
lea ecx, [ebp - 0x3c]
inc eax
push eax
push ecx
call fcn.0040d9e0
add esp, 8
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 5
push eax
push str.Player
push ecx
call fcn.0040d4c0
mov byte [ebp - 4], 6
add esp, 0xc
mov eax, dword [eax]
test eax, eax
jne 0x407dee
mov eax, 0x432284
push 6
mov ecx, dword [0x43b21c]
sub ecx, 0xbe
push ecx
push eax
mov ecx, 0x52b8b8
call fcn.00416b30
mov byte [ebp - 4], 5
call fcn.00408bab
mov dword [ebp - 4], 0xffffffff
call fcn.00408ba3
mov eax, dword [0x5274e0]
lea ecx, [ebp - 0x3c]
inc eax
push eax
push ecx
call fcn.0040d9e0
add esp, 8
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 7
push eax
push 0x43b754
push ecx
call fcn.0040d4c0
mov byte [ebp - 4], 8
add esp, 0xc
mov eax, dword [eax]
test eax, eax
jne 0x407e58
mov eax, 0x432284
push 6
mov ecx, dword [0x43b21c]
sub ecx, 0x64
push ecx
push eax
mov ecx, 0x52b8b8
call fcn.00416b30
mov byte [ebp - 4], 7
call fcn.00408b9b
mov dword [ebp - 4], 0xffffffff
call fcn.00408b93
xor esi, esi
xor edi, edi
mov eax, dword [0x43b1bc]
dec eax
test eax, eax
jle 0x407f73
mov eax, dword [0x52cfc0]
cmp eax, 0x10
jle 0x407eb0
mov eax, dword [0x52cfb8]
test eax, eax
nop
lea ebx, [eax + 0x8bb0]
jne 0x407eb5
mov ebx, 0x52c668
mov eax, dword [0x52cfc0]
cmp eax, 0x10
jle 0x407ecf
mov eax, dword [0x52cfb8]
test eax, eax
nop
lea edx, [eax + 0x8bb0]
jne 0x407ed4
mov edx, 0x52c668
mov eax, dword [edx + 0x4c]
cmp eax, 1
jle 0x407ee5
mov eax, dword [edx + 0x48]
test eax, eax
je 0x407ee5
mov edx, eax
mov eax, dword [0x52cfc0]
cmp eax, 0x10
jle 0x407eff
mov eax, dword [0x52cfb8]
test eax, eax
je 0x407eff
add eax, 0x8bb0
jmp 0x407f04
mov eax, 0x52c668
mov ecx, dword [eax + 0x4c]
cmp ecx, 1
jle 0x407f15
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x407f15
mov eax, ecx
mov ecx, dword [ebx + 0x4c]
cmp ecx, 1
jle 0x407f24
mov ecx, dword [ebx + 0x48]
test ecx, ecx
jne 0x407f26
mov ecx, ebx
push 1
mov eax, dword [eax + 0x1c]
push 0x12
add eax, 4
imul eax, edi
mov ebx, dword [edx + 0x10]
inc edi
add eax, ebx
mov edx, dword [ebp - 0x20]
sub eax, edx
mov ebx, dword [0x4fafc4]
add eax, dword [0x43b21c]
mov edx, dword [0x4fafbc]
push eax
push ebx
mov eax, dword [0x4fafc0]
mov ebx, dword [0x4fafb8]
push eax
push edx
push ebx
call fcn.0040fce0
mov eax, dword [0x43b1bc]
dec eax
cmp eax, edi
jg 0x407e96
push 0x28
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x10]
push 0
mov eax, dword [0x43b21c]
sub eax, ecx
push eax
call fcn.0040b330
add esp, 0x10
xor edi, edi
mov esi, 0x52a0d0
mov dword [0x43b234], edi
cmp esi, edi
je 0x407fb9
mov eax, dword [esi + 0x3c]
test eax, eax
jl 0x407fb2
lea eax, [esi + 0x4c]
push eax
call fcn.0040b430
add esp, 4
mov esi, dword [esi + 8]
test esi, esi
jne 0x407f9f
mov eax, dword [0x43b314]
test eax, eax
je 0x408083
push 0x50
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x6c]
cdq
sub eax, edx
sar eax, 1
sub eax, 0x14
push eax
push 0
call fcn.0040b330
add esp, 0x10
mov ecx, dword [0x43b224]
cmp ecx, dword [0x43b314]
jae 0x408079
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x68]
shl eax, 3
mov edx, dword [ebp - 0x6c]
push eax
push ecx
push edx
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov ecx, 0x4fafe8
call fcn.004169a0
mov dword [0x4fbd78], 1
mov ecx, dword [0x4fcb90]
test ecx, ecx
jne 0x40802e
mov ecx, 0x432284
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x6c]
cdq
sub eax, edx
sar eax, 1
sub eax, 0x14
push eax
push 0
push ecx
mov ecx, 0x4fafe8
call fcn.00416e00
mov ecx, dword [0x4fcb98]
test ecx, ecx
jne 0x40805a
mov ecx, 0x432284
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x6c]
cdq
sub eax, edx
sar eax, 1
add eax, 0x14
push eax
push 0
push ecx
mov ecx, 0x4fafe8
call fcn.00416e00
jmp 0x408083
mov dword [0x43b314], 0
mov dword [ebp - 0x18], 0x52a0d0
mov eax, 0x52a0d0
test eax, eax
je 0x408aa1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x5c]
test eax, eax
jne 0x408a55
add ecx, 0xc
sub esp, 8
mov dword [ebp - 0x2c], ecx
fld dword [ecx]
fstp qword [esp]
call fcn.00425030
add esp, 8
test eax, eax
je 0x4080dc
mov ecx, dword [ebp - 0x18]
sub esp, 8
add ecx, 0x10
mov dword [ebp - 0x20], ecx
fld dword [ecx]
fstp qword [esp]
call fcn.00425030
add esp, 8
test eax, eax
jne 0x408130
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x18], 0x42c80000
mov ecx, dword [ebp - 0x18]
add ecx, 0x10
mov dword [ebp - 0x20], ecx
mov dword [ecx], 0x42c80000
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x14], 0x42c80000
mov edx, dword [ebp - 0x2c]
mov dword [edx], 0x42c80000
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x28], 0x42c80000
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x20], 0x42c80000
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x24], 0x42c80000
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1c], 0x42c80000
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
fld dword [ecx + 0x24]
fadd dword [ecx + 0x1c]
fmul dword [0x43b2e0]
fmul dword [0x43212c]
fadd dword [eax]
fstp dword [eax]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
fld dword [ecx + 0x28]
fadd dword [ecx + 0x20]
fmul dword [0x43b2e0]
fmul dword [0x43212c]
fadd dword [eax]
fstp dword [eax]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x40]
cmp eax, 7
ja case.0x408177.4
jmp dword [eax*4 + 0x408c44]
mov eax, dword [0x43b23c]
test eax, eax
jne 0x408194
mov eax, dword [0x43b240]
test eax, eax
je case.0x408177.4
fld dword [0x52aeec]
fmul dword [0x4321a8]
fadd dword [0x43b2e4]
call fcn.00425004
mov dword [ebp - 0x38], eax
fld dword [0x52aeec]
fmul dword [0x4321ac]
fadd dword [0x43b2e4]
call fcn.00425004
mov dword [ebp - 0x44], eax
fld dword [0x43b2e8]
fsub dword [0x4321b0]
call fcn.00425004
mov esi, eax
mov ecx, dword [ebp - 0x18]
push 0x20
nop
mov eax, dword [ecx + 0x54]
mov edx, dword [ecx + 0x4c]
sub eax, edx
lea ecx, [esi - 0x10]
push eax
push ecx
push edx
call fcn.0040b330
add esp, 0x10
mov ecx, dword [0x43b23c]
test ecx, ecx
je case.0x408177.4
mov ecx, 0x32
mov eax, dword [0x43b224]
sub edx, edx
div ecx
push eax
call fcn.00424bd0
add esp, 4
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x58], 2
sub eax, ecx
cdq
mov dword [ebp - 0x50], eax
sub eax, edx
sar eax, 1
mov dword [ebp - 0x4c], eax
call fcn.00424be0
cdq
idiv dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x28], eax
call fcn.00424be0
cdq
mov ecx, 0x14
idiv ecx
lea edx, [esi + edx - 0xa]
mov dword [ebp - 0x48], edx
call fcn.00424be0
cdq
idiv dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x38]
add edx, eax
add edi, edx
call fcn.00424be0
cdq
mov ecx, 0x14
idiv ecx
lea eax, [esi + edx - 0xa]
mov dword [ebp - 0x40], eax
call fcn.00424be0
cdq
xor eax, edx
sub eax, edx
and eax, 0x7f
xor eax, edx
sub eax, edx
add al, 0x7f
mov bl, al
mov byte [ebp - 0xd], al
shr bl, 1
mov eax, dword [ebp - 0x48]
dec eax
mov ecx, dword [ebp - 0xd]
push ecx
mov edx, dword [ebp - 0x28]
push ebx
mov ecx, dword [ebp - 0x38]
push ebx
mov dword [ebp - 0x54], eax
push eax
push edx
push esi
push ecx
call fcn.0040ba40
add esp, 0x1c
mov eax, dword [ebp - 0x48]
inc eax
mov ecx, dword [ebp - 0xd]
push ecx
mov edx, dword [ebp - 0x28]
push ebx
mov dword [ebp - 0x60], eax
push ebx
push eax
push edx
push esi
mov ecx, dword [ebp - 0x38]
push ecx
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x28]
push 0xff
push ecx
push ecx
push eax
push edx
mov ecx, dword [ebp - 0x38]
push esi
push ecx
call fcn.0040ba40
add esp, 0x1c
mov eax, dword [ebp - 0x40]
dec eax
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0xd]
push ecx
push ebx
push ebx
mov ecx, dword [ebp - 0x28]
push eax
push edi
push edx
push ecx
call fcn.0040ba40
add esp, 0x1c
mov eax, dword [ebp - 0x40]
inc eax
mov ecx, dword [ebp - 0xd]
push ecx
mov edx, dword [ebp - 0x60]
push ebx
mov ecx, dword [ebp - 0x28]
push ebx
mov dword [ebp - 0x54], eax
push eax
push edi
push edx
push ecx
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x48]
push 0xff
push ecx
push ecx
push eax
push edi
mov ecx, dword [ebp - 0x28]
push edx
push ecx
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x44]
push ecx
mov eax, dword [ebp - 0x5c]
push ebx
push ebx
push esi
push edx
push eax
push edi
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
push ecx
push ebx
push ebx
push esi
push edx
push eax
push edi
call fcn.0040ba40
add esp, 0x1c
mov ebx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push 0xff
push ebx
push ebx
push esi
push eax
push ecx
push edi
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0x58]
dec ecx
mov dword [ebp - 0x58], ecx
jne 0x408236
push 0x14
mov eax, dword [ebp - 0x50]
push eax
sub esi, 0xa
push esi
mov ecx, dword [ebp - 0x38]
push ecx
mov ecx, 0x52d058
call fcn.004156a0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0x34]
test esi, esi
je 0x408a1d
mov edx, dword [ecx + 0x38]
test edx, edx
jl 0x408a1d
mov ecx, dword [ecx + 0x68]
cmp ecx, 0x100
jge 0x4089b9
test edx, edx
jle 0x40841a
mov eax, dword [esi + 0x958]
cmp eax, edx
jle 0x40841a
mov edi, dword [esi + 0x950]
test edi, edi
je 0x40841a
lea eax, [edx + edx*8]
lea ebx, [edx + eax*4]
lea eax, [edx + ebx*4]
shl eax, 4
lea esi, [eax + edi - 0x950]
mov eax, dword [esi + 0x4c]
cmp eax, 1
jle 0x40842b
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40842b
mov esi, eax
mov eax, dword [ebp - 0x18]
add eax, 0x4c
push eax
push 0
push ecx
mov ecx, dword [ebp - 0x20]
fld dword [ecx]
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x2c]
fld dword [ecx]
call fcn.00425004
push eax
push esi
call fcn.0040b550
add esp, 0x18
jmp 0x408a1d
xor eax, eax
mov ecx, dword [0x5284b8]
cmp ecx, eax
je 0x40846c
mov eax, 1
jmp 0x40847b
mov ecx, dword [0x52aee0]
test ecx, ecx
je 0x40847b
mov eax, 2
mov ecx, dword [0x5284b8]
test ecx, ecx
je 0x4084e0
mov ecx, dword [0x43b224]
push eax
and ecx, 0x1ff
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], 0
fild qword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
fmul dword [0x4321b4]
mov eax, dword [edx + 0x44]
push eax
push 0x52af58
fld st(0)
fcos
sub esp, 4
sub esp, 4
fmul dword [0x43210c]
fxch st(1)
fsin
fmul dword [0x43210c]
fxch st(1)
fadd dword [edx + 0x10]
fxch st(1)
fadd dword [edx + 0xc]
fxch st(1)
fstp dword [esp + 4]
fstp dword [esp]
jmp 0x4084f5
push eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x44]
mov edx, dword [ecx + 0x10]
push eax
push 0x52af58
push edx
mov eax, dword [ecx + 0xc]
push eax
call fcn.0040c440
add esp, 0x14
mov ecx, dword [ebp - 0x18]
add ecx, 0x4c
mov eax, dword [ebp - 0x20]
push 1
push ecx
fld dword [eax]
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x2c]
fld dword [ecx]
call fcn.00425004
push eax
push 0x52af58
call fcn.0040b4b0
add esp, 0x14
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x38], 0
jmp 0x408a1d
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 0x34]
test esi, esi
je 0x408a1d
mov ecx, dword [ecx + 0x38]
test ecx, ecx
jl 0x408a1d
jle 0x40857a
mov eax, dword [esi + 0x958]
cmp eax, ecx
jle 0x40857a
mov edx, dword [esi + 0x950]
test edx, edx
je 0x40857a
lea eax, [ecx + ecx*8]
lea ebx, [ecx + eax*4]
lea eax, [ecx + ebx*4]
shl eax, 4
lea esi, [eax + edx - 0x950]
mov eax, dword [esi + 0x4c]
cmp eax, 1
jle 0x40858b
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40858b
mov esi, eax
mov ecx, dword [ebp - 0x18]
push 0
add ecx, 0x4c
mov eax, dword [ebp - 0x18]
push ecx
fld dword [eax + 0x10]
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
jmp 0x408a0e
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
fsub dword [0x4320ec]
call fcn.00425004
mov dword [esi + 0x4c], eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
fadd dword [0x4320ec]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
add esi, 0x4c
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0x10]
fsub dword [0x4320f0]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0x10]
fadd dword [0x4320f0]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x58], eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
fsub dword [0x432128]
call fcn.00425004
mov edi, eax
push 0x32
push 0x64
mov ecx, dword [ebp - 0x18]
push 0xc8
fld dword [ecx + 0x10]
fadd dword [0x4321b8]
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x18]
push edi
fld dword [ecx + 0x10]
fsub dword [0x4321b8]
call fcn.00425004
push eax
push edi
call fcn.0040ba40
add esp, 0x1c
mov eax, dword [ebp - 0x2c]
fld dword [eax]
call fcn.00425004
mov edi, eax
push 0x32
push 0x96
mov eax, dword [ebp - 0x20]
push 0xff
fld dword [eax]
fadd dword [0x4320f0]
call fcn.00425004
push eax
push edi
mov eax, dword [ebp - 0x20]
fld dword [eax]
fsub dword [0x4320f0]
call fcn.00425004
push eax
push edi
call fcn.0040ba40
add esp, 0x1c
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fadd dword [0x432128]
call fcn.00425004
mov edi, eax
push 0x32
push 0x64
mov eax, dword [ebp - 0x20]
push 0xc8
fld dword [eax]
fadd dword [0x4321b8]
call fcn.00425004
push eax
push edi
mov eax, dword [ebp - 0x20]
fld dword [eax]
fsub dword [0x4321b8]
call fcn.00425004
push eax
push edi
call fcn.0040ba40
add esp, 0x1c
mov ecx, 0x52d058
push esi
call fcn.00415670
jmp 0x408a1d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x48]
test al, 1
je 0x408701
mov al, byte [ecx + 0x60]
push eax
push eax
push eax
jmp 0x40870f
push 0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x60]
push eax
push 0xff
fld dword [ecx + 0x10]
mov edx, dword [ecx + 0x68]
push edx
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
call fcn.00425004
push eax
call fcn.0040bb90
add esp, 0x18
mov esi, dword [ebp - 0x18]
add esi, 0x4c
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fsub dword [0x4320f0]
call fcn.00425004
mov dword [esi], eax
mov eax, dword [ebp - 0x2c]
fld dword [eax]
fadd dword [0x4320f0]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0x20]
fld dword [eax]
fsub dword [0x4320f0]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0x20]
fld dword [edx]
fadd dword [0x4320f0]
call fcn.00425004
mov ecx, dword [ebp - 0x18]
push esi
mov dword [ecx + 0x58], eax
mov ecx, 0x52d058
call fcn.00415670
jmp 0x408a1d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x44]
test eax, eax
jne 0x408a1d
mov eax, dword [ecx + 0x38]
test eax, eax
jle 0x4087dd
mov ecx, dword [0x529778]
cmp eax, ecx
jge 0x4087dd
mov ecx, dword [0x529770]
test ecx, ecx
je 0x4087dd
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
lea ecx, [eax + edx*4]
mov eax, dword [0x529770]
shl ecx, 4
lea esi, [ecx + eax - 0x950]
jmp 0x4087e2
mov esi, 0x528e20
mov eax, dword [esi + 0x4c]
cmp eax, 1
jle 0x4087f3
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4087f3
mov esi, eax
mov eax, dword [ebp - 0x18]
add eax, 0x4c
push eax
push 0
push 0xffff
mov eax, dword [ebp - 0x18]
fld dword [eax + 0x10]
call fcn.00425004
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x18]
add eax, 0x2f
fld dword [ecx + 0xc]
push eax
call fcn.00425004
add eax, eax
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
add eax, 0x23
push eax
push esi
call fcn.0040b550
add esp, 0x18
jmp 0x408a1d
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0xc]
fmul dword [0x432160]
fadd dword [0x4321bc]
call fcn.00425004
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x18]
fld dword [ecx + 0x10]
fmul dword [0x4321c0]
fadd dword [0x4321c4]
call fcn.00425004
mov ecx, 0x32
sub edx, edx
mov dword [ebp - 0x28], eax
mov eax, dword [0x43b224]
div ecx
push eax
call fcn.00424bd0
add esp, 4
mov ecx, 0x28
mov eax, dword [ebp - 0x28]
cdq
idiv ecx
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x4c], 3
mov edi, dword [ebp - 0x20]
xor esi, esi
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x2c]
cmp eax, esi
jle 0x40897f
dec eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x50], eax
cmp eax, 1
jg 0x4088c0
mov eax, 1
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x48], esi
call fcn.00424be0
mov ecx, 0x96
mov edi, dword [ebp - 0x20]
cdq
idiv ecx
mov ecx, dword [ebp - 0x2c]
nop
lea eax, [edx - 0x4b]
sub ecx, dword [ebp - 0x38]
dec ecx
imul eax, ecx
cdq
idiv dword [ebp - 0x50]
add edi, eax
mov eax, dword [ebp - 0x40]
cdq
idiv dword [ebp - 0x58]
mov esi, eax
call fcn.00424be0
cdq
xor eax, edx
lea ecx, [edi - 1]
sub eax, edx
and eax, 0x7f
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x48]
add al, 0x7f
mov bl, al
mov byte [ebp - 0xd], al
shr bl, 1
mov eax, dword [ebp - 0xd]
push eax
push ebx
push ebx
mov eax, dword [ebp - 0x44]
push esi
dec eax
push ecx
push edx
push eax
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
lea edx, [edi + 1]
mov eax, dword [ebp - 0x48]
push ecx
push ebx
push ebx
push esi
push edx
push eax
mov eax, dword [ebp - 0x44]
inc eax
push eax
call fcn.0040ba40
add esp, 0x1c
push 0xff
mov ebx, dword [ebp - 0xd]
push ebx
mov eax, dword [ebp - 0x48]
push ebx
mov ecx, dword [ebp - 0x44]
push esi
push edi
push eax
push ecx
call fcn.0040ba40
add esp, 0x1c
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
add eax, ecx
inc edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], edx
cmp edx, dword [ebp - 0x2c]
jl 0x4088c3
mov eax, dword [ebp - 0x4c]
dec eax
mov dword [ebp - 0x4c], eax
jne 0x40889c
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
sub eax, 0x4c
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp - 0x20]
add eax, 0x4c
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x50], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x58], eax
jmp 0x408a1d
test edx, edx
jle 0x4089e4
mov eax, dword [esi + 0x958]
cmp eax, edx
jle 0x4089e4
mov ecx, dword [esi + 0x950]
test ecx, ecx
je 0x4089e4
lea eax, [edx + edx*8]
lea ebx, [edx + eax*4]
lea eax, [edx + ebx*4]
shl eax, 4
lea esi, [eax + ecx - 0x950]
mov eax, dword [esi + 0x4c]
cmp eax, 1
jle 0x4089f5
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4089f5
mov esi, eax
push 1
mov eax, dword [ebp - 0x18]
add eax, 0x4c
mov ecx, dword [ebp - 0x20]
push eax
fld dword [ecx]
call fcn.00425004
push eax
mov ecx, dword [ebp - 0x2c]
fld dword [ecx]
call fcn.00425004
push eax
push esi
call fcn.0040b4b0
add esp, 0x14
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x18], eax
jmp 0x408a96
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 4]
test edx, edx
je 0x408a65
mov dword [edx + 8], esi
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 8]
test eax, eax
je 0x408a72
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 4], 0
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 8], 0
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x408a93
push 1
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x408097
mov ecx, 0x52d058
call fcn.00415ce0
mov eax, dword [0x43b1f4]
mov ecx, 0x52d058
cmp eax, 1
sbb eax, eax
and eax, 2
push eax
call fcn.004157d0
mov dword [0x43b1f4], 0
push 0x3e8
mov ecx, 0x4fd980
call fcn.0040cce0
mov ecx, eax
mov edx, dword [0x43e0e4]
sub ecx, edx
mov dword [0x52aedc], eax
mov eax, dword [0x52e420]
mov edx, dword [0x52aedc]
mov dword [0x43b2dc], ecx
mov dword [0x4fbd94], eax
mov dword [0x43e0e4], edx
cmp ecx, 0x21
jl 0x408b11
mov ecx, 0x21
mov dword [0x43b2dc], ecx
test ecx, ecx
jg 0x408b1d
xor ecx, ecx
mov ebx, dword [0x43b238]
mov dword [0x43b2dc], ecx
test ebx, ebx
je 0x408b2f
xor ecx, ecx
mov edx, dword [0x43b2fc]
mov dword [0x43b2dc], ecx
fild dword [0x43b2dc]
add edx, ecx
mov ebx, dword [0x43b300]
add ebx, ecx
add dword [0x43b224], ecx
fmul dword [0x4321c8]
mov dword [0x43b2fc], edx
mov dword [0x43b300], ebx
cmp edx, 0x3e8
fstp dword [0x43b2e0]
jle 0x408b7d
xor eax, eax
mov dword [0x43b2fc], eax
mov dword [0x43b2f8], eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret