Function at 0x40a7a0
Capabilities:
Check http status code
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40dd58
push eax
mov dword fs:[0], esp
mov eax, dword [0x437194]
sub esp, 0x90
test eax, eax
mov dword [ebp - 0x50], 0
push ebx
push esi
push edi
je 0x40a827
lea eax, [ebp - 0x20]
mov ecx, 0x529dd0
push eax
call fcn.00412fa0
test eax, eax
je 0x40a827
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
shl eax, 3
mov edx, dword [ebp - 0x1c]
push eax
push ecx
push edx
mov ecx, 0x529b80
call fcn.00411040
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
shl eax, 3
mov edx, dword [ebp - 0x18]
push eax
push ecx
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, 0x529b80
call fcn.00411380
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x437178]
test eax, eax
jne 0x40a83d
mov eax, dword [0x437194]
test eax, eax
je 0x40a9e5
xor ecx, ecx
mov eax, dword [0x437194]
cmp eax, ecx
je 0x40a8c7
xor edx, edx
xor esi, esi
cmp esi, 0x14
jge 0x40a8c1
mov edi, esi
test edi, edi
jg 0x40a859
xor edi, edi
cmp edi, 0x13
jl 0x40a863
mov edi, 0x13
shl edi, 2
mov eax, edx
test eax, eax
nop
lea edi, [edi + edi*4]
jg 0x40a872
xor eax, eax
cmp eax, 0x13
jl 0x40a87c
mov eax, 0x13
add edi, eax
mov eax, dword [0x522f74]
mov ebx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*2]
add edi, ebx
lea eax, [edi*4 + 0x4f9d94]
mov edi, dword [edi*4 + 0x4f9d94]
test edi, edi
jl 0x40a8be
cmp edi, 0x3e8
jge 0x40a8be
mov ebx, dword [edi*4 + 0x522f90]
cmp ebx, 5
jne 0x40a8be
neg edi
inc ecx
mov dword [eax], edi
inc esi
jmp 0x40a84c
inc edx
cmp edx, 0x14
jl 0x40a84a
push 0xff
push 0xff
push 0xff
call fcn.00404920
add esp, 0xc
mov eax, dword [0x437194]
mov dword [0x437178], 0
mov dword [0x437170], 1
test eax, eax
je 0x40a9e5
mov eax, 0x4f60d8
test eax, eax
je 0x40a926
mov eax, dword [0x4f6100]
mov ecx, dword [0x4f60f8]
push eax
mov edx, dword [0x4f60f4]
push ecx
push edx
mov ecx, 0x529b38
call fcn.00411040
mov eax, 0x4f60d8
test eax, eax
je 0x40a95a
mov eax, dword [0x4f6100]
mov ecx, dword [0x4f60fc]
push eax
mov edx, dword [0x4f60f8]
push ecx
mov eax, dword [0x4f60f4]
push edx
mov ecx, dword [0x4f60f0]
push eax
push ecx
mov ecx, 0x529b38
call fcn.00411380
xor esi, esi
call fcn.00406810
mov eax, dword [0x437120]
mov edi, 0xffffffff
imul eax, eax, 0x41c64e6d
add eax, 0x3039
mov dword [0x437194], esi
mov dword [0x437120], eax
call fcn.004203b0
sub edi, eax
call dword [sym.imp.WINMM.dll_timeGetTime]
xor edi, eax
call fcn.004203b0
mov dword [0x4371ec], 1
xor edi, eax
mov dword [0x4f43e8], esi
mov eax, dword [0x437120]
mov dword [0x4f43e0], esi
sar eax, 0x10
push 0x3e8
xor edi, eax
mov ecx, 0x4f9d70
and edi, 1
mov dword [0x4f43ec], esi
mov dword [0x4371f4], edi
mov dword [0x4f43e4], esi
call fcn.0040ea50
mov dword [0x4371f0], eax
jmp 0x40dd02
mov eax, dword [0x437198]
test eax, eax
je 0x40aa87
mov eax, dword [0x524000]
test eax, eax
jne 0x40aa87
mov edx, 1
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40aa29
mov eax, dword [ecx + 0x40]
cmp eax, 4
je 0x40aa20
cmp eax, 6
je 0x40aa20
cmp eax, 7
jne 0x40aa22
xor edx, edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x40aa0e
test edx, edx
je 0x40aa87
mov eax, dword [0x522f70]
mov ecx, dword [0x43719c]
cmp ecx, eax
jl 0x40aa4b
mov dword [0x4371c4], 5
jmp 0x40dd02
mov dword [0x437194], 1
mov dword [0x437198], 0
mov eax, dword [0x522f70]
dec eax
test eax, eax
jg 0x40aa6b
xor eax, eax
mov ecx, dword [0x43719c]
test ecx, ecx
jg 0x40aa77
xor ecx, ecx
cmp eax, ecx
jl 0x40aa7d
mov eax, ecx
mov dword [0x522f74], eax
jmp 0x40dd02
mov ecx, 0x4f9d90
call fcn.00414a20
mov eax, dword [0x523f30]
test eax, eax
jg 0x40aab8
mov eax, dword [0x524000]
test eax, eax
jne 0x40aab8
mov dword [0x437198], 1
mov eax, dword [0x522f74]
inc eax
mov dword [0x43719c], eax
mov eax, dword [0x523f30]
cmp eax, 2
jg 0x40aeab
test eax, eax
jle 0x40aeab
mov eax, dword [0x437234]
test eax, eax
jne 0x40aaf0
mov dword [0x437238], 0xffffffff
mov eax, dword [0x437190]
mov dword [0x437234], eax
jmp 0x40aeab
mov eax, dword [0x524974]
mov ecx, dword [0x437138]
cmp eax, ecx
je 0x40ab09
mov eax, dword [0x437190]
mov dword [0x437234], eax
mov esi, dword [0x437190]
mov eax, dword [0x437234]
sub esi, eax
mov ecx, dword [0x437238]
mov edi, 0x1130
mov eax, esi
cdq
idiv edi
mov dword [0x437238], eax
cmp eax, ecx
je 0x40ab9f
call fcn.004203b0
cdq
idiv dword [0x437188]
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fstp dword [ebp - 0x10]
mov eax, dword [0x4371d8]
test eax, eax
je 0x40ab6a
fild dword [0x437188]
mov edi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub edi, eax
jmp 0x40ab80
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov edi, eax
push edi
mov eax, esi
shl eax, 6
mov ecx, 0xea60
sub eax, esi
cdq
idiv ecx
push eax
mov ecx, 0x4f8640
push 0
push 0x17
call fcn.004154d0
cmp esi, 0xea60
jle 0x40aeab
mov ecx, 0x4f8640
call fcn.004156d0
mov eax, dword [0x4371d8]
cmp eax, 1
mov eax, 0
adc eax, 0xffffffff
mov ecx, 0x4f8640
and eax, 0xff
push eax
push 0x3f
push 0
push 0x18
call fcn.004154d0
fild dword [0x437188]
fstp dword [ebp - 0x10]
mov ecx, dword [0x4371d8]
cmp ecx, 1
mov ecx, 0x4f8640
sbb eax, eax
and eax, 0xff
push eax
push 0x3f
push 0
push 0x18
call fcn.004154d0
push 0x18
mov ecx, 0x4f8640
call fcn.004154a0
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul qword [0x433020]
call fcn.00420918
mov edi, eax
mov ecx, dword [0x437188]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp dword [ebp - 0x10]
mov edx, dword [0x4371d8]
test edx, edx
je 0x40ac61
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40ac77
mov dword [ebp - 0x30], ecx
fild dword [ebp - 0x30]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
xor esi, esi
push edi
push 0x18
xor edi, edi
call fcn.004154d0
mov dword [ebp - 0x10], 0x13
mov eax, dword [0x522f74]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea edx, [eax + eax*4]
lea ebx, [ecx + edx*2]
xor eax, eax
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
jg 0x40acb0
xor ecx, ecx
cmp ecx, 0x13
jl 0x40acba
mov ecx, 0x13
mov dword [ebp - 0x30], esi
mov edx, eax
test edx, edx
jg 0x40acc5
xor edx, edx
cmp edx, 0x13
jl 0x40accf
mov edx, 0x13
shl edx, 2
lea edx, [edx + edx*4]
add edx, ecx
add edx, ebx
mov edx, dword [edx*4 + 0x4f9d94]
test edx, edx
je 0x40acfa
jl 0x40ad05
cmp edx, 0x3e8
jge 0x40ad05
mov esi, dword [edx*4 + 0x522f90]
cmp esi, 2
jne 0x40ad05
inc eax
cmp eax, 0x14
jl 0x40acbd
mov esi, dword [ebp - 0x30]
jmp 0x40ad0a
mov esi, eax
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
jns 0x40aca5
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
test eax, eax
je 0x40ad53
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.00401cb0
jmp 0x40ad55
xor eax, eax
test eax, eax
je 0x40ad7b
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40ad6f
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
mov ebx, 0x20
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
mov eax, 0
je 0x40ae24
call fcn.004203b0
mov ecx, 0x258
sub esp, 4
cdq
idiv ecx
sub edx, 0x12c
mov dword [ebp - 0x30], edx
fild dword [ebp - 0x30]
fstp dword [esp]
call fcn.004203b0
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 - 0x30], edx
fild dword [ebp - 0x30]
lea edx, [ecx + ecx*2]
push 0
push 0x3e8
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fxch st(1)
fstp dword [esp + 0x10]
fstp dword [esp + 0xc]
lea eax, [edx + edx*4]
push 5
add eax, 0x23
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
fstp dword [esp + 0xc]
call fcn.00401cb0
test eax, eax
je 0x40ae4a
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40ae3e
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
dec ebx
jne 0x40ad80
mov eax, dword [0x522610]
mov ecx, eax
test eax, eax
jle 0x40ae5e
xor ecx, ecx
lea edx, [ecx + 1]
mov eax, 1
cmp ecx, edx
je 0x40ae85
mov ebx, dword [0x522610]
inc ebx
cmp ebx, edx
jg 0x40ae77
mov edx, eax
mov ebx, dword [edx*4 + 0x522f90]
cmp ebx, eax
je 0x40ae8a
inc edx
jmp 0x40ae66
mov edx, 0xffffffff
push edx
push edi
push esi
call fcn.00404710
add esp, 0xc
push 0
push edi
push esi
call fcn.004030b0
mov dword [0x437234], 0
add esp, 0xc
xor ebx, ebx
mov esi, 1
mov edi, 0x14
mov eax, dword [0x43720c]
shl eax, 2
cmp eax, ebx
jle 0x40afb4
mov edx, dword [0x437220]
test edx, edx
jg 0x40aed3
xor edx, edx
cmp edx, 0x13
jl 0x40aedd
mov edx, 0x13
shl edx, 2
mov eax, dword [0x437224]
test eax, eax
nop
lea edx, [edx + edx*4]
jg 0x40aeef
xor eax, eax
cmp eax, 0x13
jl 0x40aef9
mov eax, 0x13
add edx, eax
mov eax, dword [0x522f74]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
add edx, ecx
mov eax, dword [edx*4 + 0x4f9d94]
test eax, eax
jl 0x40af7c
cmp eax, 0x3e8
jge 0x40af7c
mov ecx, dword [eax*4 + 0x522f90]
cmp ecx, esi
jne 0x40af7c
test eax, eax
jg 0x40af33
xor eax, eax
mov ecx, dword [0x522610]
cmp eax, ecx
jl 0x40af3f
mov eax, ecx
lea ecx, [eax + 1]
cmp eax, ecx
je 0x40af61
mov edx, dword [0x522610]
inc edx
cmp edx, ecx
jg 0x40af53
mov ecx, esi
mov edx, dword [ecx*4 + 0x522f90]
cmp edx, esi
je 0x40af66
inc ecx
jmp 0x40af42
mov ecx, 0xffffffff
push ecx
mov eax, dword [0x437224]
push eax
mov ecx, dword [0x437220]
push ecx
call fcn.00404710
add esp, 0xc
mov eax, dword [0x437220]
inc eax
mov dword [0x437220], eax
cmp eax, edi
jl 0x40afae
mov dword [0x437220], 0
mov eax, dword [0x437224]
inc eax
mov dword [0x437224], eax
cmp eax, edi
jl 0x40afae
mov dword [0x437224], 0
inc ebx
jmp 0x40aeb7
mov eax, dword [0x524978]
test eax, eax
je 0x40b0ae
mov eax, dword [0x4f3a7c]
test eax, eax
jg 0x40afcc
xor eax, eax
cmp eax, 0x13
jl 0x40afd6
mov eax, 0x13
mov esi, 0x12
mov dword [0x4f3a7c], eax
mov eax, dword [0x4f3a7c]
test esi, esi
jl 0x40b092
test eax, eax
jg 0x40aff3
xor eax, eax
cmp eax, 0x13
jl 0x40affd
mov eax, 0x13
shl eax, 2
lea edx, [eax + eax*4]
mov eax, dword [0x522f74]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea ebx, [eax + eax*4]
mov eax, esi
test eax, eax
nop
lea ecx, [ecx + ebx*2]
jg 0x40b01f
xor eax, eax
cmp eax, 0x13
jl 0x40b029
mov eax, 0x13
add eax, edx
add eax, ecx
mov eax, dword [eax*4 + 0x4f9d94]
test eax, eax
je 0x40b08c
lea edi, [esi + 1]
mov ebx, edi
test ebx, ebx
jg 0x40b043
xor ebx, ebx
cmp ebx, 0x13
jl 0x40b04d
mov ebx, 0x13
add ebx, edx
add ebx, ecx
mov edx, dword [ebx*4 + 0x4f9d94]
lea ecx, [ebx*4 + 0x4f9d94]
test edx, edx
jne 0x40b08c
test eax, eax
jl 0x40b079
push eax
push edi
mov eax, dword [0x4f3a7c]
push eax
call fcn.00404710
add esp, 0xc
jmp 0x40b07b
mov dword [ecx], eax
push 0
mov eax, dword [0x4f3a7c]
push esi
push eax
call fcn.00404710
add esp, 0xc
dec esi
jmp 0x40afe0
dec eax
mov dword [0x4f3a7c], eax
jns 0x40b0ae
mov dword [0x4f3a7c], 0x14
mov dword [0x524978], 0
mov eax, dword [0x4371a4]
test eax, eax
je 0x40b0fc
mov eax, dword [0x4f8630]
cmp eax, str.Game_Paused
je 0x40b0d2
push str.Game_Paused
mov ecx, 0x4f8630
call fcn.0040edc0
mov eax, dword [0x4f8638]
cmp eax, str.Hit_P_to_continue
je 0x40b0ed
push str.Hit_P_to_continue
mov ecx, 0x4f8638
call fcn.0040edc0
mov eax, dword [0x437190]
add eax, 0x3e8
mov dword [0x437244], eax
mov eax, dword [0x43715c]
test eax, eax
je 0x40b2a7
mov eax, dword [0x437170]
test eax, eax
jne 0x40b2a7
mov eax, dword [0x524000]
test eax, eax
jne 0x40b2a7
mov eax, dword [0x4371a4]
test eax, eax
jne 0x40b2a7
call fcn.00406ce0
mov eax, dword [0x5291d0]
test eax, eax
je 0x40b29d
mov eax, dword [0x524010]
cmp eax, 6
jge 0x40b29d
mov eax, dword [0x4371d8]
test eax, eax
je 0x40b179
fild dword [0x437188]
mov esi, 0xff
fdivr dword [0x437214]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40b192
fild dword [0x437188]
fdivr dword [0x437214]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
push 0
push 0x10
call fcn.004154d0
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
test eax, eax
je 0x40b1f8
fld dword [0x437218]
fsub dword [0x43302c]
fld dword [0x527a58]
fmul qword [0x433030]
push 0xc3c80000
push 0
sub esp, 4
fadd dword [0x437214]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov ecx, eax
fstp dword [esp]
push 0
push 0
push 3
call fcn.00401cb0
jmp 0x40b1fa
xor eax, eax
test eax, eax
je 0x40b220
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40b214
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
test eax, eax
je 0x40b275
fld dword [0x437218]
fsub dword [0x43302c]
fld dword [0x527a58]
fmul qword [0x433038]
push 0xc3c80000
push 0
sub esp, 4
fadd dword [0x437214]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov ecx, eax
fstp dword [esp]
push 0
push 0
push 3
call fcn.00401cb0
jmp 0x40b277
xor eax, eax
test eax, eax
je 0x40b29d
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40b291
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
mov dword [0x43715c], 0
mov eax, dword [0x4371b0]
cmp eax, 0x64
jle 0x40b2c0
mov dword [0x4371b0], 0
call fcn.00405300
mov eax, dword [0x4f8628]
mov ecx, dword [0x524018]
mov dword [0x527a4c], eax
xor eax, eax
mov dword [0x4f8628], eax
mov dword [0x524010], eax
cmp ecx, eax
je 0x40b2f1
mov dword [0x437184], 1
mov dword [0x437180], eax
jmp 0x40b305
mov dword [0x437180], 1
mov dword [0x437184], 0
mov eax, dword [0x524000]
test eax, eax
je 0x40b4b1
mov eax, dword [0x43713c]
test eax, eax
jg 0x40b407
mov eax, dword [0x437134]
cmp eax, 1
jle 0x40b370
mov eax, dword [0x437130]
lea ecx, [ebp - 0x28]
inc eax
push eax
push ecx
call fcn.0040f750
add esp, 8
mov ecx, dword [ebp - 0x50]
or ecx, 1
lea edx, [ebp - 0x34]
push eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 4], 0
push 0x437c18
push edx
call fcn.0040f230
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 4], 1
or ecx, 2
mov dword [ebp - 0x50], ecx
jmp 0x40b388
push 0x437c20
lea ecx, [ebp - 0x14]
call fcn.0040ec70
mov dword [ebp - 4], 2
or dword [ebp - 0x50], 4
mov esi, dword [eax]
test esi, esi
jne 0x40b393
mov esi, 0x4330e4
mov eax, dword [0x4f8630]
cmp eax, str.Game_Over
je 0x40b3ae
push str.Game_Over
mov ecx, 0x4f8630
call fcn.0040edc0
mov eax, dword [0x4f8638]
cmp esi, eax
je 0x40b3c2
push esi
mov ecx, 0x4f8638
call fcn.0040edc0
mov dword [ebp - 4], 1
mov eax, dword [0x437190]
inc eax
mov dword [0x437244], eax
call fcn.0040b4a1
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x50]
and ecx, 0xfffffffb
mov dword [ebp - 0x50], ecx
call fcn.0040b491
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x50]
and ecx, 0xfffffffd
mov dword [ebp - 0x50], ecx
call fcn.0040b481
and dword [ebp - 0x50], 0xfffffffe
mov eax, dword [0x437190]
mov ecx, dword [0x524970]
sub eax, ecx
fld dword [0x433040]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fmul dword [0x432ffc]
fmul st(1), st(0)
fxch st(1)
fsubr dword [0x433040]
call fcn.00420918
fcomp dword [0x432fc0]
mov dword [0x526c98], eax
fnstsw ax
test ah, 0x41
jne 0x40b4bb
mov dword [0x524000], 0
call fcn.00406810
mov dword [0x437170], 1
mov eax, dword [0x43713c]
test eax, eax
jg 0x40dd02
mov dword [0x4371c4], 4
jmp 0x40dd02
mov dword [0x526c98], 0x100
mov dword [0x527a04], 0
mov ebx, 0x526c30
test ebx, ebx
je 0x40c893
mov eax, dword [ebx + 0x40]
cmp eax, 7
ja case.default.0x40b4de
jmp dword [eax*4 + 0x40dd6c]
mov dword [ebx + 0x34], 0x5291d8
mov eax, dword [0x524014]
test eax, eax
jne 0x40b503
mov eax, dword [0x4371a8]
test eax, eax
mov eax, 0
je 0x40b508
mov eax, 1
mov ecx, dword [0x5291d0]
lea ecx, [eax + ecx*2]
cmp ecx, 2
jl 0x40b51b
mov ecx, 2
shl ecx, 2
mov esi, 4
mov edi, 0x64
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x38], ecx
sub esi, dword [0x4f8670]
mov eax, dword [0x437230]
cdq
idiv edi
cdq
xor eax, edx
sub eax, edx
and eax, 3
xor eax, edx
sub eax, edx
lea esi, [eax + esi*4]
add ecx, esi
mov dword [ebx + 0x38], ecx
test ecx, ecx
jle 0x40b581
mov eax, dword [0x529b30]
cmp eax, ecx
jle 0x40b581
mov eax, dword [0x529b28]
test eax, eax
je 0x40b581
lea eax, [ecx + ecx*8]
lea edx, [ecx + eax*4]
lea eax, [ecx + edx*4]
mov edx, dword [0x529b28]
shl eax, 4
lea eax, [eax + edx - 0x950]
jmp 0x40b586
mov eax, 0x5291d8
mov edx, dword [eax + 0x4c]
cmp edx, 1
jle 0x40b595
mov edx, dword [eax + 0x48]
test edx, edx
jne 0x40b597
mov edx, eax
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
test ecx, ecx
fstp dword [ebx + 0x2c]
fld dword [ebx + 0x2c]
fmul dword [0x432fb8]
fstp dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov dword [0x527a58], edx
jle 0x40b5e8
mov eax, dword [0x529b30]
cmp eax, ecx
jle 0x40b5e8
mov eax, dword [0x529b28]
test eax, eax
je 0x40b5e8
lea edx, [ecx + ecx*8]
lea eax, [ecx + edx*4]
lea edx, [ecx + eax*4]
mov eax, dword [0x529b28]
shl edx, 4
lea ecx, [edx + eax - 0x950]
jmp 0x40b5ed
mov ecx, 0x5291d8
mov eax, dword [ecx + 0x4c]
cmp eax, 1
jle 0x40b5fc
mov eax, dword [ecx + 0x48]
test eax, eax
jne 0x40b5fe
mov eax, ecx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fstp dword [ebx + 0x30]
mov ecx, dword [0x524000]
test ecx, ecx
jne case.default.0x40b4de
mov eax, dword [0x4371a4]
test eax, eax
jne case.default.0x40b4de
fld dword [ebp - 0x10]
fadd dword [0x432f50]
fstp dword [ebp - 0x10]
fld dword [ebx + 0x2c]
fmul dword [0x432fbc]
mov eax, dword [0x437188]
sub eax, 0x14
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
faddp st(1)
fild dword [0x43714c]
fld dword [ebp - 0x10]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x40b65e
fxch st(1)
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x40b66b
fxch st(1)
fstp st(0)
fstp dword [ebx + 0xc]
mov dword [ebx + 0x10], 0x43e60000
fld dword [ebp - 0x10]
call fcn.00420918
mov dword [0x437218], 0x43e60000
mov dword [0x437160], eax
mov eax, dword [ebx + 0xc]
mov dword [0x437214], eax
jmp case.default.0x40b4de
inc dword [0x527a04]
mov esi, dword [ebx + 0x44]
mov ecx, dword [esi*4 + 0x432f28]
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
fst dword [ebx + 0x2c]
fstp dword [ebx + 0x30]
mov eax, dword [ebx + 0x1c]
mov dword [0x4371b8], eax
fld dword [ebx + 0x1c]
fmul dword [ebx + 0x1c]
fld dword [ebx + 0x20]
fmul dword [ebx + 0x20]
mov edx, dword [ebx + 0x20]
mov dword [0x4371bc], edx
faddp st(1)
fsqrt
fmul qword [0x433048]
call fcn.00420918
mov ecx, 0x64
mov edx, dword [0x4f8670]
mov dword [0x437128], eax
test edx, edx
jg 0x40b6fc
mov ecx, 0x96
test esi, esi
jg 0x40b703
add ecx, 0x32
mov eax, dword [0x437128]
push ebx
imul eax, ecx
cdq
mov ecx, 0x64
idiv ecx
mov dword [0x437128], eax
call fcn.004036f0
add esp, 4
test eax, eax
je 0x40b801
push 0
push ebx
call fcn.00403980
add esp, 8
mov eax, dword [0x527a48]
test eax, eax
jne 0x40b801
mov esi, 4
mov eax, dword [0x527a4c]
cmp eax, 0x14
jge 0x40b7fa
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov edi, eax
mov eax, 0
test edi, edi
je 0x40b7d4
call fcn.004203b0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x432f64]
fiadd dword [ebp - 0x10]
fsub dword [0x433000]
fstp dword [esp]
call fcn.004203b0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov ecx, edi
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x432f64]
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 [0x433000]
fstp dword [esp + 0x14]
call fcn.00401cb0
test eax, eax
je 0x40b7fa
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40b7ee
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
dec esi
jne 0x40b746
mov eax, dword [0x524018]
test eax, eax
je 0x40b93a
mov eax, dword [0x437190]
mov ecx, dword [ebx + 0x6c]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x19
jle 0x40b93a
mov eax, dword [0x527a4c]
cmp eax, 0x14
jge 0x40b932
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov esi, eax
mov eax, 0
test esi, esi
je 0x40b90c
call fcn.004203b0
cdq
mov ecx, 0x32
sub esp, 4
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x433050]
fiadd dword [ebp - 0x10]
fsub dword [0x433054]
fstp dword [esp]
call fcn.004203b0
cdq
mov ecx, 0x32
sub esp, 4
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x433050]
fiadd dword [ebp - 0x10]
fsub dword [0x433054]
fstp dword [esp]
call fcn.004203b0
fld dword [ebx + 0x30]
mov edi, eax
call fcn.00420918
mov ecx, eax
mov eax, edi
cdq
idiv ecx
sub esp, 4
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x30]
fmul dword [0x432fb8]
fisubr dword [ebp - 0x10]
fadd dword [ebx + 0x10]
fstp dword [esp]
call fcn.004203b0
fld dword [ebx + 0x2c]
mov edi, eax
call fcn.00420918
mov ecx, eax
mov eax, edi
cdq
idiv ecx
sub esp, 4
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x2c]
fmul dword [0x432fb8]
push 0
mov ecx, esi
push 0
push 5
fisubr dword [ebp - 0x10]
fadd dword [ebx + 0xc]
fstp dword [esp + 0xc]
call fcn.00401cb0
test eax, eax
je 0x40b932
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40b926
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
mov eax, dword [0x437190]
mov dword [ebx + 0x6c], eax
mov edi, 0xffffffff
mov eax, dword [ebx + 0x48]
test al, 1
je 0x40b987
mov eax, dword [ebx + 0x60]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fadd dword [0x437214]
fstp dword [ebx + 0xc]
fld dword [ebx + 0x30]
fmul dword [0x432fbc]
mov dword [0x4371a8], 2
fadd dword [0x437218]
fstp dword [ebx + 0x10]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
jmp case.default.0x40b4de
fld dword [ebx + 0x30]
fmul dword [0x432fbc]
fadd dword [0x437218]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x40bca4
fld dword [ebx + 0x2c]
fmul dword [0x432fbc]
fsub dword [0x527a58]
fadd dword [0x437214]
fcom dword [ebx + 0xc]
fstp dword [ebp - 0x10]
fnstsw ax
test ah, 1
je 0x40bca4
fld dword [ebx + 0xc]
fcomp dword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x40bca4
fld dword [ebx + 0x2c]
fmul dword [0x432fb8]
fadd dword [0x527a58]
fadd dword [0x437214]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x40bca4
mov eax, dword [0x524000]
test eax, eax
jne 0x40bca4
mov ecx, dword [0x437190]
mov edx, dword [0x437204]
mov eax, ecx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xc8
jle 0x40bac6
fld dword [ebx + 0xc]
fsub dword [0x437214]
fld dword [0x527a58]
fmul dword [0x433058]
fxch st(1)
fabs
fxch st(1)
fcompp
mov edi, 0
fnstsw ax
test ah, 0x41
je 0x40ba59
mov edi, 0xf
mov eax, dword [0x4f6ec8]
mov dword [0x437204], ecx
test eax, eax
je 0x40bac6
mov dword [0x524978], 1
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40ba9f
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40bab5
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
push 0
push 0x13
call fcn.004154d0
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 [0x437214]
fst dword [ebp - 0x24]
fdiv dword [0x527a58]
fmul dword [0x432fec]
fld dword [0x432ff0]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x40bb02
fxch st(1)
fstp st(0)
fld dword [0x432fec]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x40bb15
fxch st(1)
fstp st(0)
fst dword [ebp - 0x44]
fsin
fmul dword [ebp - 0x10]
fstp dword [ebx + 0x1c]
fld dword [ebp - 0x44]
fcos
fmul dword [ebp - 0x10]
fchs
fstp dword [ebx + 0x20]
fld dword [ebp - 0x24]
fstp qword [ebp - 0x28]
fld dword [0x527a58]
fmul dword [0x433058]
fld qword [ebp - 0x28]
fabs
fcompp
fnstsw ax
test ah, 1
je 0x40bca4
fld dword [ebx + 0x30]
fmul dword [0x432fbc]
fadd dword [0x437218]
fstp dword [ebx + 0x10]
mov eax, dword [0x524014]
test eax, eax
je 0x40bba0
mov eax, dword [0x4371ac]
test eax, eax
jne 0x40bba0
mov eax, dword [ebx + 0x48]
or eax, 1
mov dword [ebx + 0x48], eax
mov edi, 0x11
fld qword [ebp - 0x28]
call fcn.00420918
mov dword [ebx + 0x60], eax
fld dword [ebp - 0x10]
call fcn.00420918
mov dword [ebx + 0x64], eax
jmp 0x40bca4
mov eax, dword [ebp - 0x10]
cmp eax, 0x43c80000
jle 0x40bca4
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40bbdb
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40bbf1
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
mov esi, 8
push 0
push 0xe
call fcn.004154d0
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
mov eax, 0
je 0x40bc77
call fcn.004203b0
mov ecx, 0xc8
sub esp, 4
cdq
idiv ecx
sub edx, 0xc8
mov dword [ebp - 0x24], edx
fild dword [ebp - 0x24]
fstp dword [esp]
call fcn.004203b0
mov ecx, 0x190
sub esp, 4
cdq
idiv ecx
sub edx, 0xc8
mov dword [ebp - 0x24], edx
fild dword [ebp - 0x24]
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.00401cb0
test eax, eax
je 0x40bc9d
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40bc91
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
dec esi
jne 0x40bc07
fld dword [ebx + 0x2c]
fmul dword [0x432fb8]
fadd dword [0x432f50]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x40bcdf
mov eax, dword [ebx + 0x1c]
cmp eax, 0x80000000
jbe 0x40bcdf
fld dword [ebx + 0x1c]
fabs
mov edi, 4
push 0
fstp dword [ebx + 0x1c]
push ebx
call fcn.00403980
add esp, 8
fld dword [ebx + 0x2c]
fmul dword [0x432fbc]
mov eax, dword [0x437188]
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 0x40bd23
mov eax, dword [ebx + 0x1c]
test eax, eax
jle 0x40bd23
fld dword [ebx + 0x1c]
fabs
fchs
mov edi, 4
push 0
fstp dword [ebx + 0x1c]
push ebx
call fcn.00403980
add esp, 8
fld dword [ebx + 0x30]
fmul dword [0x432fb8]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x40bd58
mov eax, dword [ebx + 0x20]
cmp eax, 0x80000000
jbe 0x40bd58
fld dword [ebx + 0x20]
fabs
mov edi, 4
push 0
fstp dword [ebx + 0x20]
push ebx
call fcn.00403980
add esp, 8
fild dword [0x43718c]
fld dword [ebx + 0x30]
fmul dword [0x432fbc]
faddp st(1)
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x40bd86
mov eax, dword [ebx + 0x20]
test eax, eax
jle 0x40bd86
mov dword [ebx + 0x5c], 1
mov edi, 5
fld dword [ebx + 0x20]
fabs
fcomp dword [0x432f4c]
fnstsw ax
test ah, 1
je 0x40bdb1
call fcn.004203b0
cdq
mov ecx, 0x64
idiv ecx
sub edx, 0x32
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fstp dword [ebx + 0x20]
test edi, edi
jl case.default.0x40b4de
push edi
mov ecx, 0x4f8640
call fcn.004154a0
mov esi, eax
mov ecx, dword [0x437188]
mov eax, dword [ebx + 0x44]
test eax, eax
jg 0x40bdd5
add esi, esi
cmp eax, 1
jle 0x40bde3
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x24], eax
mov edx, dword [0x4371d8]
test edx, edx
je 0x40be1b
mov dword [ebp - 0x10], 0xff
mov dword [ebp - 0x44], ecx
fild dword [ebp - 0x44]
fdivr dword [ebp - 0x24]
fmul dword [0x432f5c]
call fcn.00420918
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], ecx
jmp 0x40be32
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
fdivr dword [ebp - 0x24]
fmul dword [0x432f5c]
call fcn.00420918
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov ecx, 0x4f8640
push eax
push 0x3f
push esi
push edi
call fcn.004154d0
jmp case.default.0x40b4de
fld dword [0x437210]
fmul dword [0x433060]
lea eax, [ebx + 0x20]
lea ecx, [ebx + 0x2c]
mov dword [0x4371e4], 2
mov dword [ebp - 0x24], eax
fadd dword [eax]
fstp dword [eax]
lea eax, [ebx + 0x30]
mov dword [ebp - 0x44], ecx
mov edx, dword [0x526cbc]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
mov ecx, dword [ebp - 0x44]
fstp dword [ecx]
mov edx, dword [0x526cc0]
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
fstp dword [eax]
fld dword [ebx + 0x2c]
fmul dword [0x432fb8]
fadd dword [0x432f50]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x40bf14
mov eax, dword [ebx + 0x1c]
lea edi, [ebx + 0x1c]
cmp eax, 0x80000000
jbe 0x40bf14
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40bee7
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40befd
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
push 0
push 4
call fcn.004154d0
fld dword [edi]
fabs
fstp dword [edi]
mov eax, dword [ebp - 0x54]
fld dword [eax]
fmul dword [0x432fbc]
fadd dword [0x437218]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je 0x40c4cd
mov eax, dword [ebp - 0x44]
fld dword [eax]
fmul dword [0x432fbc]
fsub dword [0x527a58]
fadd dword [0x437214]
fcom dword [ebx + 0xc]
fstp dword [ebp - 0x10]
fnstsw ax
test ah, 1
je 0x40c4cd
fld dword [ebx + 0xc]
fcomp dword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x40c4cd
mov eax, dword [ebp - 0x44]
fld dword [eax]
fmul dword [0x432fb8]
fadd dword [0x527a58]
fadd dword [0x437214]
fcomp dword [ebx + 0xc]
fnstsw ax
test ah, 0x41
jne 0x40c4cd
mov eax, dword [0x524000]
test eax, eax
jne 0x40c4cd
mov eax, dword [0x437138]
mov ecx, dword [ebx + 0xc]
add eax, 0x32
mov dword [ebp - 0x10], ecx
mov edi, dword [ebx + 0x48]
mov edx, dword [0x4371d8]
mov dword [0x437138], eax
test edx, edx
je 0x40bfdb
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
jmp 0x40bff1
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov esi, eax
push esi
mov ecx, 0x4f8640
push 0x3f
mov esi, 0x526c30
push 0
push edi
call fcn.004154d0
mov eax, dword [ebx + 0x44]
cmp eax, 0x14
ja case.default.0x40c012
jmp dword [eax*4 + 0x40dd8c]
call fcn.00406ce0
mov dword [0x4371a0], 1
mov dword [0x524014], 0
mov dword [0x5291d0], 0
inc dword [0x43713c]
jmp case.default.0x40c012
mov dword [0x437198], 1
mov eax, dword [0x522f74]
inc eax
mov dword [0x43719c], eax
jmp case.default.0x40c012
call fcn.00405300
jmp case.default.0x40c012
call fcn.00406ce0
mov edi, dword [0x526c38]
test edi, edi
je 0x40c09b
mov esi, 1
mov eax, dword [edi + 0x40]
cmp eax, esi
jne 0x40c094
push 0x43160000
push edi
call fcn.00403980
add esp, 8
mov edi, dword [edi + 8]
test edi, edi
jne 0x40c07f
mov dword [0x527a48], 0
mov dword [0x524018], 0
jmp case.default.0x40c012
mov eax, dword [0x522f74]
mov ecx, eax
lea eax, [eax + eax*4]
shl eax, 3
lea edx, [ecx + eax*8]
lea eax, [edx + edx*4]
sub eax, ecx
lea esi, [eax + 0x4f9d90]
cmp esi, 0x521020
je 0x40c0ed
mov eax, dword [esi]
add esi, 4
mov edi, 0x521024
mov ecx, 0x190
mov dword [0x521020], eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
add eax, ecx
mov edi, dword [eax*4 + 0x521024]
test edi, edi
jl 0x40c178
cmp edi, 0x3e8
jge 0x40c178
mov eax, dword [edi*4 + 0x522f90]
cmp eax, 1
jne 0x40c178
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
dec esi
add eax, 2
mov dword [ebp - 0x58], eax
cmp eax, esi
jle 0x40c178
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x5c], eax
push edi
mov eax, dword [ebp - 0x60]
push eax
push esi
call fcn.00404710
add esp, 0xc
mov eax, dword [ebp - 0x10]
push edi
push eax
push esi
call fcn.00404710
add esp, 0xc
mov eax, dword [ebp - 0x5c]
push edi
push eax
push esi
call fcn.00404710
add esp, 0xc
inc esi
cmp esi, dword [ebp - 0x58]
jl 0x40c148
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x14
jl 0x40c102
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x4c]
add eax, 0x14
inc ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x4c], ecx
cmp eax, 0x190
jl 0x40c0fb
jmp case.default.0x40c012
mov dword [0x527a48], 1
jmp case.default.0x40c012
xor edi, edi
xor esi, esi
cmp esi, 0x14
jge 0x40c22f
mov ecx, edi
test ecx, ecx
jg 0x40c1c8
xor ecx, ecx
cmp ecx, 0x13
jl 0x40c1d2
mov ecx, 0x13
shl ecx, 2
mov eax, esi
test eax, eax
nop
lea ecx, [ecx + ecx*4]
jg 0x40c1e1
xor eax, eax
cmp eax, 0x13
jl 0x40c1eb
mov eax, 0x13
add ecx, eax
mov eax, dword [0x522f74]
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 + 0x4f9d94]
test eax, eax
jl 0x40c22c
cmp eax, 0x3e8
jge 0x40c22c
mov ecx, dword [eax*4 + 0x522f90]
cmp ecx, 1
jne 0x40c22c
push 1
push esi
push edi
call fcn.004030b0
add esp, 0xc
inc esi
jmp 0x40c1bb
inc edi
cmp edi, 0x14
jl 0x40c1b9
jmp case.default.0x40c012
mov dword [0x524018], 1
call fcn.00406ce0
jmp case.default.0x40c012
mov dword [0x5291d0], 1
call fcn.00406ce0
jmp case.default.0x40c012
mov dword [0x524014], 1
jmp case.default.0x40c012
mov eax, dword [0x4f8670]
inc eax
cmp eax, 4
jl 0x40c281
mov eax, 4
mov dword [0x4f8670], eax
call fcn.00406ce0
jmp case.default.0x40c012
call fcn.00406ce0
mov esi, dword [0x526c38]
test esi, esi
je case.default.0x40c012
mov edi, 1
mov eax, dword [esi + 0x40]
cmp eax, edi
jne 0x40c313
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
test eax, eax
je 0x40c2eb
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 edi
mov ecx, eax
call fcn.00401cb0
jmp 0x40c2ed
xor eax, eax
test eax, eax
je 0x40c313
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40c307
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
mov esi, dword [esi + 8]
test esi, esi
jne 0x40c2a8
jmp case.default.0x40c012
call fcn.00406b10
jmp case.default.0x40c012
mov eax, dword [0x4f8670]
dec eax
test eax, eax
jg 0x40c335
xor eax, eax
mov dword [0x4f8670], eax
call fcn.00406ce0
jmp case.default.0x40c012
call fcn.00406ce0
mov esi, dword [0x526c38]
test esi, esi
je case.default.0x40c012
mov edi, 1
mov eax, dword [esi + 0x40]
cmp eax, edi
jne 0x40c371
push 0x43fa0000
push esi
call fcn.00403980
add esp, 8
mov esi, dword [esi + 8]
test esi, esi
jne 0x40c35c
jmp case.default.0x40c012
mov dword [0x4f8670], 0
call fcn.00406ce0
jmp case.default.0x40c012
mov dword [0x4f6ec8], 1
jmp case.default.0x40c012
call fcn.00406ce0
mov eax, dword [0x526c38]
test eax, eax
je case.default.0x40c012
mov ecx, 1
xor edx, edx
mov esi, dword [eax + 0x40]
cmp esi, ecx
jne 0x40c3c3
mov dword [eax + 0x44], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x40c3b9
jmp case.default.0x40c012
call fcn.00406ce0
mov eax, 1
mov esi, dword [esi + 8]
test esi, esi
je case.default.0x40c012
mov ecx, dword [esi + 0x40]
cmp ecx, eax
jne 0x40c3d9
mov dword [esi + 0x5c], 1
xor edi, edi
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov ecx, eax
mov eax, 0
test ecx, ecx
je 0x40c46b
fld qword [0x42e008]
fmul qword [0x433070]
sub esp, 4
mov dword [ebp - 0x10], edi
fild dword [ebp - 0x10]
sub esp, 4
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
fmul dword [0x43306c]
push eax
push edx
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x44]
fmul qword [0x42e010]
push eax
push edx
push 1
fadd st(1), st(0)
fxch st(1)
fst st(1)
fcos
fmul qword [0x433078]
fxch st(1)
fsin
fmul qword [0x432fb0]
fxch st(1)
fstp dword [esp + 0x18]
fstp dword [esp + 0x14]
call fcn.00401cb0
test eax, eax
je 0x40c491
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40c485
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
inc edi
cmp edi, 8
jl 0x40c3f4
jmp case.default.0x40c012
call fcn.00406ce0
mov eax, dword [0x526c38]
test eax, eax
je case.default.0x40c012
mov ecx, 1
mov edx, 2
mov esi, dword [eax + 0x40]
cmp esi, ecx
jne 0x40c4bf
mov dword [eax + 0x44], edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x40c4b5
mov dword [ebx + 0x5c], 1
mov eax, dword [ebp - 0x44]
fld dword [eax]
fmul dword [0x432fb8]
mov eax, dword [0x437188]
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 0x40c558
mov eax, dword [ebx + 0x1c]
lea esi, [ebx + 0x1c]
test eax, eax
jle 0x40c558
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40c529
fild dword [0x437188]
mov edi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub edi, eax
jmp 0x40c53f
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov edi, eax
push edi
mov ecx, 0x4f8640
push 0x3f
push 0
push 4
call fcn.004154d0
fld dword [esi]
fabs
fchs
fstp dword [esi]
mov eax, dword [ebp - 0x54]
fld dword [eax]
fmul dword [0x432fb8]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 0x41
jne 0x40c5d5
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x80000000
jbe 0x40c5d5
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40c5a7
fild dword [0x437188]
mov esi, 0xff
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
sub esi, eax
mov eax, esi
jmp 0x40c5bb
fild dword [0x437188]
fdivr dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
push eax
mov ecx, 0x4f8640
push 0x3f
push 0
push 4
call fcn.004154d0
mov eax, dword [ebp - 0x24]
fld dword [eax]
fabs
fstp dword [eax]
fild dword [0x43718c]
fcomp dword [ebx + 0x10]
fnstsw ax
test ah, 1
je case.default.0x40b4de
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
jle case.default.0x40b4de
jmp 0x40c881
mov eax, dword [0x524010]
push ebx
mov dword [ebx + 0x2c], 0x40400000
mov dword [ebx + 0x30], 0x41800000
mov dword [0x437128], 8
inc eax
mov dword [0x524010], eax
call fcn.004036f0
add esp, 4
test eax, eax
je 0x40c702
mov eax, dword [0x527a48]
test eax, eax
jne 0x40c702
mov dword [ebx + 0x5c], 1
mov esi, 4
mov eax, dword [0x527a4c]
cmp eax, 0x14
jge 0x40c6fb
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov edi, eax
mov eax, 0
test edi, edi
je 0x40c6d5
call fcn.004203b0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x20]
fmul dword [0x432f64]
fiadd dword [ebp - 0x10]
fsub dword [0x433000]
fstp dword [esp]
call fcn.004203b0
mov ecx, 0x64
sub esp, 4
cdq
idiv ecx
mov ecx, edi
mov dword [ebp - 0x10], edx
fld dword [ebx + 0x1c]
fmul dword [0x432f64]
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 [0x433000]
fstp dword [esp + 0x14]
call fcn.00401cb0
test eax, eax
je 0x40c6fb
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40c6ef
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
dec esi
jne 0x40c647
mov eax, dword [ebx + 0x10]
cmp eax, 0x80000000
jbe case.default.0x40b4de
jmp 0x40c881
mov ecx, dword [0x437190]
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.0x40b4de
jmp 0x40c881
mov eax, dword [0x437190]
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 [0x433088]
fstp dword [ebp - 0x10]
fnstsw ax
test ah, 0x41
jne 0x40c77e
mov dword [ebx + 0x5c], 1
jmp 0x40c795
fld dword [0x432fc0]
fsub dword [ebp - 0x10]
fmul dword [0x432f5c]
call fcn.00420918
mov dword [ebx + 0x68], eax
mov eax, dword [0x4f8628]
inc eax
mov dword [0x4f8628], eax
jmp case.default.0x40b4de
mov ecx, dword [0x437190]
mov eax, dword [ebx + 0x60]
sub ecx, eax
mov esi, 0x190
mov eax, dword [0x5262d8]
sub edx, edx
dec eax
imul eax, ecx
div esi
mov dword [ebx + 0x38], eax
cmp ecx, 0x64
jbe 0x40c85d
mov eax, dword [ebx + 0x48]
test eax, eax
jne 0x40c85d
fld dword [ebx + 0xc]
call fcn.00420918
mov dword [ebp - 0x24], eax
fld dword [ebx + 0x10]
call fcn.00420918
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
add eax, 2
dec esi
mov dword [ebp - 0x44], eax
cmp esi, eax
jge 0x40c856
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
cmp eax, edi
jle 0x40c84e
mov eax, dword [ebp - 0x24]
cmp esi, eax
jne 0x40c828
mov eax, dword [ebp - 0x10]
cmp eax, edi
je 0x40c846
test esi, esi
jl 0x40c846
test edi, edi
jl 0x40c846
cmp esi, 0x14
jge 0x40c846
cmp edi, 0x14
jge 0x40c846
push 1
push edi
push esi
call fcn.004030b0
add esp, 0xc
inc edi
mov eax, dword [ebp - 0x2c]
cmp edi, eax
jl 0x40c81a
inc esi
mov eax, dword [ebp - 0x44]
cmp esi, eax
jl 0x40c810
mov dword [ebx + 0x48], 1
mov eax, dword [0x437190]
mov ecx, dword [ebx + 0x60]
sub eax, ecx
cmp eax, 0x190
jbe case.default.0x40b4de
jmp 0x40c881
mov eax, dword [0x437190]
mov ecx, dword [ebx + 0x6c]
sub eax, ecx
cmp eax, 0x12c
jbe case.default.0x40b4de
mov dword [ebx + 0x5c], 1
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x40b4d2
mov eax, dword [0x4371e4]
test eax, eax
jle 0x40c8a2
dec eax
mov dword [0x4371e4], eax
mov eax, dword [0x4371a8]
test eax, eax
jle 0x40c8b1
dec eax
mov dword [0x4371a8], eax
mov eax, dword [0x4371ac]
test eax, eax
jle 0x40c8c0
dec eax
mov dword [0x4371ac], eax
mov eax, dword [0x527a04]
test eax, eax
jg 0x40c8ce
call fcn.00406b10
mov eax, dword [0x437190]
mov ecx, dword [0x437208]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jl 0x40cb66
mov eax, dword [0x527a68]
test eax, eax
je 0x40cb66
mov esi, eax
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x10], edx
call fcn.004203b0
and eax, 1
add eax, 0x15
mov dword [ebp - 0x24], eax
mov ecx, dword [0x4371d8]
test ecx, ecx
je 0x40c94e
mov ebx, 0xff
lea eax, [edi*2]
fild dword [0x437188]
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
add eax, 0x14
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fdivrp st(1)
fmul dword [0x432f5c]
call fcn.00420918
sub ebx, eax
mov dword [ebp - 0x30], ebx
jmp 0x40c97a
fild dword [0x437188]
lea eax, [edi*2]
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
add eax, 0x14
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fdivrp st(1)
fmul dword [0x432f5c]
call fcn.00420918
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
push eax
push 0x3f
push 0
push ecx
mov ecx, 0x4f8640
call fcn.004154d0
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
test eax, eax
je 0x40c9d3
push 0
mov edx, dword [ebp - 0x10]
push 0
mov dword [ebp - 0x30], edx
fild dword [ebp - 0x30]
sub esp, 4
mov dword [ebp - 0x30], edi
fild dword [ebp - 0x30]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov ecx, eax
fstp dword [esp]
push 0
push 0
push 6
call fcn.00401cb0
jmp 0x40c9d5
xor eax, eax
mov edx, 0x526c30
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40c9f0
xor ecx, ecx
mov edx, dword [edx + 8]
mov ebx, dword [edx + 8]
test ebx, ebx
jne 0x40c9e6
mov dword [edx + 8], eax
test eax, eax
je 0x40c9fa
mov dword [eax + 4], edx
push section..rdata
push 0x70
call fcn.00418330
add esp, 8
mov ecx, eax
test ecx, ecx
jne 0x40ca13
xor eax, eax
jmp 0x40ca8c
push 0
mov edx, dword [ebp - 0x10]
push 0
mov dword [ebp - 0x30], edx
fild dword [ebp - 0x30]
sub esp, 4
mov dword [ebp - 0x30], edi
fild dword [ebp - 0x30]
fxch st(1)
fstp dword [esp]
sub esp, 4
mov edx, edi
test edx, edx
fstp dword [esp]
push 0
jg 0x40ca3e
xor edx, edx
cmp edx, 0x13
jl 0x40ca48
mov edx, 0x13
shl edx, 2
mov eax, dword [ebp - 0x10]
test eax, eax
nop
lea edx, [edx + edx*4]
jg 0x40ca58
xor eax, eax
cmp eax, 0x13
jl 0x40ca62
mov eax, 0x13
add edx, eax
mov eax, dword [0x522f74]
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x30]
lea eax, [eax + eax*4]
shl eax, 3
lea eax, [eax + eax*4]
lea eax, [ebx + eax*2]
add edx, eax
mov ebx, dword [edx*4 + 0x4f9d94]
push ebx
push 4
call fcn.00401cb0
test eax, eax
je 0x40cab2
mov ecx, dword [0x526c38]
test ecx, ecx
je 0x40caa6
mov dword [ecx + 4], eax
mov ecx, dword [0x526c38]
mov dword [eax + 8], ecx
mov dword [0x526c38], eax
mov dword [eax + 4], 0x526c30
mov edx, edi
test edx, edx
jg 0x40caba
xor edx, edx
cmp edx, 0x13
jl 0x40cac4
mov edx, 0x13
shl edx, 2
mov eax, dword [ebp - 0x10]
test eax, eax
nop
lea edx, [edx + edx*4]
jg 0x40cad4
xor eax, eax
cmp eax, 0x13
jl 0x40cade
mov eax, 0x13
add edx, eax
mov eax, dword [0x522f74]
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 + 0x4f9d94]
test eax, eax
je 0x40cb2b
push 0
mov edx, dword [ebp - 0x10]
push edx
push edi
call fcn.00404710
add esp, 0xc
mov eax, dword [0x437138]
add eax, 8
mov edx, dword [ebp - 0x10]
push 0
mov dword [0x437138], eax
push edx
push edi
call fcn.004022d0
add esp, 0xc
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x40cb38
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x40cb42
mov dword [eax + 4], ecx
mov dword [esi + 4], 0
mov dword [esi + 8], 0
test esi, esi
je 0x40cb5c
push 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, dword [0x437190]
mov dword [0x437208], eax
lea eax, [ebp - 0x88]
mov ecx, 0x529dd0
push eax
call fcn.00412fa0
test eax, eax
je 0x40dba7
mov eax, dword [0x437228]
mov ecx, dword [0x437170]
inc eax
test ecx, ecx
mov dword [0x437228], eax
je 0x40cc12
push 0xff
push 0xff
push 0xff
call fcn.00404920
add esp, 0xc
mov esi, dword [0x43718c]
mov edi, dword [0x437188]
lea eax, [ebp - 0x20]
push eax
mov ecx, 0x529dd0
call fcn.00412fa0
test eax, eax
je 0x40cc09
push 0
push esi
push edi
mov eax, dword [ebp - 0x14]
push 0
mov ecx, dword [ebp - 0x18]
push 0
mov edx, dword [ebp - 0x1c]
push 0
push 0
push eax
push ecx
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x4f60d8
call fcn.00411670
push esi
mov ecx, 0x529dd0
push edi
push 0
push 0
call fcn.00412ac0
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x437170]
test eax, eax
jne 0x40cc55
mov eax, dword [0x4371a0]
test eax, eax
jne 0x40cc55
mov ecx, dword [0x524974]
mov eax, dword [0x437138]
cmp ecx, eax
je 0x40cdb8
mov eax, dword [0x437190]
mov edx, dword [0x52497c]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x19
jg 0x40cc55
mov eax, dword [0x437138]
sub eax, ecx
cmp eax, 0x32
jle 0x40cdb8
mov eax, dword [0x4f6100]
mov ecx, dword [0x4f60fc]
push eax
mov edx, dword [0x4f60f8]
push ecx
mov eax, dword [0x4f60f4]
push edx
mov ecx, dword [0x4f60f0]
push eax
push ecx
mov ecx, 0x4f7880
call fcn.00413c70
mov eax, dword [0x524974]
mov ecx, dword [0x437138]
mov dword [0x4f8610], 1
cmp eax, ecx
jge 0x40cc9c
inc eax
jmp 0x40cca1
mov eax, dword [0x437138]
push eax
mov dword [0x524974], eax
lea eax, [ebp - 0x34]
push eax
call fcn.0040f750
mov dword [ebp - 4], 3
add esp, 8
mov eax, dword [eax]
test eax, eax
jne 0x40ccc5
mov eax, 0x4330e4
push eax
mov ecx, 0x4f7880
call fcn.00413fd0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], eax
call fcn.0040dd40
push 0
mov eax, dword [ebp - 0x10]
push 0x28
mov ecx, dword [0x4f60fc]
push eax
mov edx, dword [0x4f60f8]
push 0
mov eax, dword [0x4f60f4]
push 0x18
push 0
push 0x18
push ecx
push edx
mov ecx, dword [0x4f60f0]
push eax
push ecx
mov ecx, 0x527a78
call fcn.00411670
mov ecx, dword [0x524974]
lea edx, [ebp - 0x34]
push ecx
push edx
call fcn.0040f750
mov dword [ebp - 4], 4
add esp, 8
mov eax, dword [eax]
test eax, eax
jne 0x40cd39
mov eax, 0x4330e4
push 2
mov ecx, 0x4f7880
push 0x18
push eax
call fcn.00413dc0
mov dword [ebp - 4], 0xffffffff
call fcn.0040dd38
lea eax, [ebp - 0x40]
mov ecx, 0x529dd0
push eax
call fcn.00412fa0
test eax, eax
je 0x40cdae
push 0
mov eax, dword [ebp - 0x10]
push 0x28
mov ecx, dword [ebp - 0x34]
push eax
mov edx, dword [ebp - 0x38]
push 0
mov eax, dword [ebp - 0x3c]
push 0x18
push 0
push 0x18
push ecx
push edx
mov ecx, dword [ebp - 0x30]
push eax
push ecx
mov ecx, 0x4f60d8
call fcn.00411670
push 0x28
mov ecx, dword [ebp - 0x10]
push ecx
push 0
push 0x18
mov ecx, 0x529dd0
call fcn.00412ac0
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x437190]
mov dword [0x52497c], eax
mov eax, dword [0x437170]
test eax, eax
jne 0x40cdce
mov eax, dword [0x4371a0]
test eax, eax
je 0x40d0b4
mov eax, dword [0x4f6100]
mov ecx, dword [0x4f60fc]
push eax
mov edx, dword [0x4f60f8]
push ecx
mov eax, dword [0x4f60f4]
push edx
mov ecx, dword [0x4f60f0]
push eax
push ecx
mov ecx, 0x528428
call fcn.00413c70
mov dword [0x5291b8], 1
mov ecx, dword [0x529b30]
cmp ecx, 0x10
jle 0x40ce1e
mov eax, dword [0x529b28]
test eax, eax
je 0x40ce1e
add eax, 0x8bb0
jmp 0x40ce23
mov eax, 0x5291d8
mov ecx, dword [eax + 0x4c]
cmp ecx, 1
jle 0x40ce34
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x40ce34
mov eax, ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [0x43713c]
add ecx, 4
dec eax
imul ecx, eax
add ecx, 0x28
cmp ecx, 0xc8
mov eax, ecx
mov dword [ebp - 0x30], ecx
jg 0x40ce58
mov eax, 0xc8
push 0
mov dword [ebp - 0x10], eax
mov eax, dword [0x437188]
mov edx, dword [ebp - 0x10]
sub eax, edx
push 0x28
push edx
mov ecx, dword [0x4f60fc]
push 0
push eax
push 0
mov edx, dword [0x4f60f4]
push eax
push ecx
mov eax, dword [0x4f60f8]
mov ecx, dword [0x4f60f0]
push eax
push edx
push ecx
mov ecx, 0x527a78
call fcn.00411670
mov eax, dword [0x437130]
lea ecx, [ebp - 0x48]
inc eax
push eax
push ecx
call fcn.0040f750
add esp, 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 5
push eax
push str.Player
push ecx
call fcn.0040f230
mov byte [ebp - 4], 6
add esp, 0xc
mov ecx, dword [eax]
test ecx, ecx
jne 0x40ced0
mov ecx, 0x4330e4
push 6
mov eax, dword [0x437188]
sub eax, 0xbe
push eax
push ecx
mov ecx, 0x528428
call fcn.00413dc0
mov byte [ebp - 4], 5
call fcn.0040dd30
mov dword [ebp - 4], 0xffffffff
call fcn.0040dd28
mov eax, dword [0x522f74]
lea ecx, [ebp - 0x48]
inc eax
push eax
push ecx
call fcn.0040f750
add esp, 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 7
push eax
push str.Board
push ecx
call fcn.0040f230
mov byte [ebp - 4], 8
add esp, 0xc
mov ecx, dword [eax]
test ecx, ecx
jne 0x40cf38
mov ecx, 0x4330e4
push 6
mov eax, dword [0x437188]
sub eax, 0x64
push eax
push ecx
mov ecx, 0x528428
call fcn.00413dc0
mov byte [ebp - 4], 7
call fcn.0040dd20
mov dword [ebp - 4], 0xffffffff
call fcn.0040dd18
xor esi, esi
xor edi, edi
mov eax, dword [0x43713c]
dec eax
test eax, eax
jle 0x40d052
mov eax, dword [0x529b30]
cmp eax, 0x10
jle 0x40cf8f
mov eax, dword [0x529b28]
test eax, eax
nop
lea ebx, [eax + 0x8bb0]
jne 0x40cf94
mov ebx, 0x5291d8
mov eax, dword [0x529b30]
cmp eax, 0x10
jle 0x40cfae
mov eax, dword [0x529b28]
test eax, eax
nop
lea edx, [eax + 0x8bb0]
jne 0x40cfb3
mov edx, 0x5291d8
mov eax, dword [edx + 0x4c]
cmp eax, 1
jle 0x40cfc4
mov eax, dword [edx + 0x48]
test eax, eax
je 0x40cfc4
mov edx, eax
mov eax, dword [0x529b30]
cmp eax, 0x10
jle 0x40cfde
mov eax, dword [0x529b28]
test eax, eax
je 0x40cfde
add eax, 0x8bb0
jmp 0x40cfe3
mov eax, 0x5291d8
mov ecx, dword [eax + 0x4c]
cmp ecx, 1
jle 0x40cff4
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x40cff4
mov eax, ecx
mov ecx, dword [ebx + 0x4c]
cmp ecx, 1
jle 0x40d003
mov ecx, dword [ebx + 0x48]
test ecx, ecx
jne 0x40d005
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 - 0x30]
sub eax, edx
mov ebx, dword [0x4f60fc]
add eax, dword [0x437188]
mov edx, dword [0x4f60f4]
push eax
push ebx
mov eax, dword [0x4f60f8]
mov ebx, dword [0x4f60f0]
push eax
push edx
push ebx
call fcn.00411630
mov eax, dword [0x43713c]
dec eax
cmp eax, edi
jg 0x40cf75
mov esi, dword [0x437188]
mov eax, dword [ebp - 0x10]
sub esi, eax
lea ecx, [ebp - 0x40]
push ecx
mov ecx, 0x529dd0
call fcn.00412fa0
test eax, eax
je 0x40d0b4
push 0
mov ecx, dword [ebp - 0x10]
push 0x28
mov eax, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x38]
push 0
mov ecx, dword [ebp - 0x3c]
push esi
push 0
push esi
push eax
push edx
mov eax, dword [ebp - 0x30]
push ecx
push eax
mov ecx, 0x4f60d8
call fcn.00411670
push 0x28
mov ecx, dword [ebp - 0x10]
push ecx
push 0
push esi
mov ecx, 0x529dd0
call fcn.00412ac0
mov ecx, 0x529dd0
call fcn.00413100
xor esi, esi
mov edi, 0x526c30
mov dword [0x4371a0], esi
cmp edi, esi
je 0x40d0f4
mov eax, dword [edi + 0x3c]
test eax, eax
jl 0x40d0ed
cmp edi, 0xffffffb4
je 0x40d0ed
mov ecx, dword [edi + 0x50]
mov edx, dword [edi + 0x4c]
mov eax, dword [edi + 0x58]
sub eax, ecx
push eax
mov eax, dword [edi + 0x54]
sub eax, edx
push eax
push ecx
push edx
call fcn.00403ca0
add esp, 0x10
mov edi, dword [edi + 8]
test edi, edi
jne 0x40d0c5
mov eax, dword [0x437244]
test eax, eax
je 0x40d211
mov esi, dword [ebp - 0x84]
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
mov ecx, 0x529dd0
sar eax, 1
lea edi, [eax - 0x14]
lea eax, [ebp - 0x20]
push eax
call fcn.00412fa0
test eax, eax
je 0x40d163
push 0
push 0x50
push esi
mov eax, dword [ebp - 0x14]
push edi
mov ecx, dword [ebp - 0x18]
push 0
mov edx, dword [ebp - 0x1c]
push edi
push 0
push eax
push ecx
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x4f60d8
call fcn.00411670
push 0x50
mov ecx, 0x529dd0
push esi
push edi
push 0
call fcn.00412ac0
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x437190]
mov ecx, dword [0x437244]
cmp ecx, eax
jbe 0x40d207
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x7c]
shl eax, 3
mov edx, dword [ebp - 0x80]
push eax
push ecx
push edx
mov eax, dword [ebp - 0x84]
push eax
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, 0x4f6120
call fcn.00413c70
mov dword [0x4f6eb0], 1
mov ecx, dword [0x4f8630]
test ecx, ecx
jne 0x40d1b6
mov ecx, 0x4330e4
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
sar eax, 1
sub eax, 0x14
push eax
push 0
push ecx
mov ecx, 0x4f6120
call fcn.00414090
mov ecx, dword [0x4f8638]
test ecx, ecx
jne 0x40d1e5
mov ecx, 0x4330e4
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x80]
cdq
sub eax, edx
sar eax, 1
add eax, 0x14
push eax
push 0
push ecx
mov ecx, 0x4f6120
call fcn.00414090
jmp 0x40d211
mov dword [0x437244], 0
mov dword [ebp - 0x30], 0x526c30
mov eax, 0x526c30
test eax, eax
je 0x40db7b
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x5c]
test eax, eax
jne 0x40db2f
add ecx, 0xc
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x30]
fld dword [eax + 0x24]
fadd dword [eax + 0x1c]
fmul dword [0x437210]
fmul dword [0x432fb8]
fadd dword [ecx]
fstp dword [ecx]
mov edx, dword [ebp - 0x30]
add edx, 0x10
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x30]
fld dword [eax + 0x28]
fadd dword [eax + 0x20]
fmul dword [0x437210]
fmul dword [0x432fb8]
fadd dword [edx]
fstp dword [edx]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x40]
cmp eax, 7
ja case.0x40d283.4
jmp dword [eax*4 + 0x40dde0]
mov eax, dword [0x4371a8]
test eax, eax
jne 0x40d2a0
mov eax, dword [0x4371ac]
test eax, eax
je case.0x40d283.4
fld dword [0x527a58]
fmul dword [0x433090]
fadd dword [0x437214]
call fcn.00420918
mov dword [ebp - 0x2c], eax
fld dword [0x527a58]
fmul dword [0x433094]
fadd dword [0x437214]
call fcn.00420918
fld dword [0x437218]
fsub dword [0x433098]
mov dword [ebp - 0x58], eax
call fcn.00420918
mov esi, eax
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x9c]
nop
mov ebx, dword [ecx + 0x54]
mov edi, dword [ecx + 0x4c]
sub ebx, edi
push eax
mov ecx, 0x529dd0
call fcn.00412fa0
test eax, eax
je 0x40d356
push 0
lea eax, [esi - 0x10]
push 0x20
mov edx, dword [ebp - 0x90]
push ebx
push eax
push edi
mov ecx, dword [ebp - 0x98]
push eax
push edi
push edx
mov eax, dword [ebp - 0x94]
push eax
mov edx, dword [ebp - 0x8c]
push ecx
push edx
mov ecx, 0x4f60d8
call fcn.00411670
push 0x20
lea ecx, [esi - 0x10]
push ebx
push ecx
push edi
mov ecx, 0x529dd0
call fcn.00412ac0
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x4371a8]
test eax, eax
je case.0x40d283.4
mov ecx, 0x32
mov eax, dword [0x437190]
sub edx, edx
div ecx
push eax
call fcn.004203a0
add esp, 4
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x6c], 2
sub eax, ecx
cdq
mov dword [ebp - 0x64], eax
sub eax, edx
sar eax, 1
mov dword [ebp - 0x60], eax
call fcn.004203b0
cdq
idiv dword [ebp - 0x60]
mov edi, dword [ebp - 0x2c]
add edi, edx
call fcn.004203b0
cdq
mov ecx, 0x14
idiv ecx
lea eax, [esi + edx - 0xa]
mov dword [ebp - 0x5c], eax
call fcn.004203b0
cdq
idiv dword [ebp - 0x60]
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x60]
add eax, edx
mov dword [ebp - 0x4c], eax
call fcn.004203b0
cdq
mov ecx, 0x14
idiv ecx
lea edx, [esi + edx - 0xa]
mov dword [ebp - 0x54], edx
call fcn.004203b0
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 - 0x5c]
dec eax
mov ecx, dword [ebp - 0xd]
push ecx
mov edx, dword [ebp - 0x2c]
push ebx
mov dword [ebp - 0x68], eax
push ebx
push eax
push edi
push esi
push edx
call fcn.004043d0
add esp, 0x1c
mov eax, dword [ebp - 0x5c]
inc eax
mov ecx, dword [ebp - 0xd]
push ecx
mov dword [ebp - 0x74], eax
push ebx
push ebx
push eax
push edi
push esi
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x2c]
push 0xff
push ecx
push ecx
push eax
push edi
push esi
push edx
call fcn.004043d0
add esp, 0x1c
mov eax, dword [ebp - 0x54]
dec eax
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0xd]
push ecx
push ebx
push ebx
mov ecx, dword [ebp - 0x68]
push eax
push edx
push ecx
push edi
call fcn.004043d0
add esp, 0x1c
mov eax, dword [ebp - 0x54]
inc eax
mov ecx, dword [ebp - 0xd]
push ecx
mov edx, dword [ebp - 0x4c]
push ebx
mov ecx, dword [ebp - 0x74]
push ebx
mov dword [ebp - 0x68], eax
push eax
push edx
push ecx
push edi
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x4c]
push 0xff
push ecx
push ecx
push eax
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
push edi
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
push ecx
push ebx
mov edx, dword [ebp - 0x58]
push ebx
mov eax, dword [ebp - 0x70]
push esi
mov ecx, dword [ebp - 0x4c]
push edx
push eax
push ecx
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x68]
push ecx
push ebx
push ebx
mov ecx, dword [ebp - 0x4c]
push esi
push edx
push eax
push ecx
call fcn.004043d0
add esp, 0x1c
mov ebx, dword [ebp - 0xd]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
push 0xff
mov edx, dword [ebp - 0x4c]
push ebx
push ebx
push esi
push eax
push ecx
push edx
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0x6c]
dec ecx
mov dword [ebp - 0x6c], ecx
jne 0x40d394
push 0x14
mov eax, dword [ebp - 0x64]
push eax
sub esi, 0xa
push esi
mov ecx, dword [ebp - 0x2c]
push ecx
mov ecx, 0x529dd0
call fcn.00412ac0
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + 0x34]
test esi, esi
je 0x40daf7
mov edx, dword [ecx + 0x38]
test edx, edx
jl 0x40daf7
mov ecx, dword [ecx + 0x68]
cmp ecx, 0x100
jge 0x40da93
test edx, edx
jle 0x40d576
mov eax, dword [esi + 0x958]
cmp eax, edx
jle 0x40d576
mov edi, dword [esi + 0x950]
test edi, edi
je 0x40d576
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 0x40d587
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40d587
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, 0x4c
push eax
push 0
push ecx
mov ecx, dword [ebp - 0x24]
fld dword [ecx]
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x44]
fld dword [ecx]
call fcn.00420918
push eax
push esi
call fcn.00403ec0
add esp, 0x18
jmp 0x40daf7
xor eax, eax
mov ecx, dword [0x524018]
cmp ecx, eax
je 0x40d5c8
mov eax, 1
jmp 0x40d5d7
mov ecx, dword [0x527a48]
test ecx, ecx
je 0x40d5d7
mov eax, 2
push eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x44]
mov edx, dword [ecx + 0x10]
push eax
push 0x527ac8
push edx
mov eax, dword [ecx + 0xc]
push eax
call fcn.00404f20
add esp, 0x14
mov ecx, dword [ebp - 0x30]
add ecx, 0x4c
mov eax, dword [ebp - 0x24]
push 1
push ecx
fld dword [eax]
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x44]
fld dword [ecx]
call fcn.00420918
push eax
push 0x527ac8
call fcn.00403e20
add esp, 0x14
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x38], 0
jmp 0x40daf7
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + 0x34]
test esi, esi
je 0x40daf7
mov edx, dword [ecx + 0x38]
test edx, edx
jl 0x40daf7
jle 0x40d671
mov eax, dword [esi + 0x958]
cmp eax, edx
jle 0x40d671
mov ecx, dword [esi + 0x950]
test ecx, ecx
je 0x40d671
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 0x40d682
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40d682
mov esi, eax
mov ecx, dword [ebp - 0x30]
push 0
add ecx, 0x4c
mov eax, dword [ebp - 0x30]
push ecx
fld dword [eax + 0x10]
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
jmp 0x40dae8
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
fsub dword [0x432fc4]
call fcn.00420918
mov dword [esi + 0x4c], eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
fadd dword [0x432fc4]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
add esi, 0x4c
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0x10]
fsub dword [0x432fe8]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0x10]
fadd dword [0x432fe8]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x58], eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
fsub dword [0x432fc0]
call fcn.00420918
mov edi, eax
push 0x32
push 0x64
mov ecx, dword [ebp - 0x30]
push 0xc8
fld dword [ecx + 0x10]
fadd dword [0x43309c]
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x30]
push edi
fld dword [ecx + 0x10]
fsub dword [0x43309c]
call fcn.00420918
push eax
push edi
call fcn.004043d0
add esp, 0x1c
mov eax, dword [ebp - 0x44]
fld dword [eax]
call fcn.00420918
mov edi, eax
push 0x32
push 0x96
mov eax, dword [ebp - 0x24]
push 0xff
fld dword [eax]
fadd dword [0x432fe8]
call fcn.00420918
push eax
push edi
mov eax, dword [ebp - 0x24]
fld dword [eax]
fsub dword [0x432fe8]
call fcn.00420918
push eax
push edi
call fcn.004043d0
add esp, 0x1c
mov eax, dword [ebp - 0x44]
fld dword [eax]
fadd dword [0x432fc0]
call fcn.00420918
mov edi, eax
push 0x32
push 0x64
mov eax, dword [ebp - 0x24]
push 0xc8
fld dword [eax]
fadd dword [0x43309c]
call fcn.00420918
push eax
push edi
mov eax, dword [ebp - 0x24]
fld dword [eax]
fsub dword [0x43309c]
call fcn.00420918
push eax
push edi
call fcn.004043d0
add esp, 0x1c
mov ecx, 0x529dd0
push esi
call fcn.00412a90
jmp 0x40daf7
push 0
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0x10]
mov eax, dword [ecx + 0x60]
mov edx, dword [ecx + 0x68]
push eax
push 0xff
push edx
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
call fcn.00420918
push eax
call fcn.00404520
add esp, 0x18
mov esi, dword [ebp - 0x30]
add esi, 0x4c
mov eax, dword [ebp - 0x44]
fld dword [eax]
fsub dword [0x432fe8]
call fcn.00420918
mov dword [esi], eax
mov eax, dword [ebp - 0x44]
fld dword [eax]
fadd dword [0x432fe8]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0x24]
fld dword [eax]
fsub dword [0x432fe8]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0x24]
fld dword [edx]
fadd dword [0x432fe8]
call fcn.00420918
mov ecx, dword [ebp - 0x30]
push esi
mov dword [ecx + 0x58], eax
mov ecx, 0x529dd0
call fcn.00412a90
jmp 0x40daf7
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x38]
test eax, eax
jle 0x40d8b7
mov ecx, dword [0x5262d8]
cmp ecx, eax
jle 0x40d8b7
mov ecx, dword [0x5262d0]
test ecx, ecx
je 0x40d8b7
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
lea ecx, [eax + edx*4]
mov eax, dword [0x5262d0]
shl ecx, 4
lea esi, [ecx + eax - 0x950]
jmp 0x40d8bc
mov esi, 0x525980
mov eax, dword [esi + 0x4c]
cmp eax, 1
jle 0x40d8cd
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40d8cd
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, 0x4c
push eax
push 0
push 0xffff
mov eax, dword [ebp - 0x30]
fld dword [eax + 0x10]
call fcn.00420918
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x30]
add eax, 0x2f
fld dword [ecx + 0xc]
push eax
call fcn.00420918
add eax, eax
lea ecx, [eax + eax*2]
lea eax, [ecx + ecx*4]
add eax, 0x23
push eax
push esi
call fcn.00403ec0
add esp, 0x18
jmp 0x40daf7
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0xc]
fmul dword [0x432f4c]
fadd dword [0x4330a0]
call fcn.00420918
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x30]
fld dword [ecx + 0x10]
fmul dword [0x432f54]
fadd dword [0x4330a4]
call fcn.00420918
mov ecx, 0x32
sub edx, edx
mov dword [ebp - 0x4c], eax
mov eax, dword [0x437190]
div ecx
push eax
call fcn.004203a0
add esp, 4
mov ecx, 0x28
mov eax, dword [ebp - 0x4c]
cdq
idiv ecx
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x60], 3
mov esi, dword [ebp - 0x24]
xor edi, edi
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x44]
cmp eax, edi
jle 0x40da59
dec eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x64], eax
cmp eax, 1
jg 0x40d99a
mov eax, 1
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
call fcn.004203b0
mov ecx, 0x96
mov esi, dword [ebp - 0x24]
cdq
idiv ecx
mov ecx, dword [ebp - 0x44]
nop
lea eax, [edx - 0x4b]
sub ecx, dword [ebp - 0x2c]
dec ecx
imul eax, ecx
cdq
idiv dword [ebp - 0x64]
add esi, eax
mov eax, dword [ebp - 0x54]
cdq
idiv dword [ebp - 0x6c]
mov edi, eax
call fcn.004203b0
cdq
xor eax, edx
lea ecx, [esi - 1]
sub eax, edx
and eax, 0x7f
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x5c]
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 - 0x58]
push edi
dec eax
push ecx
push edx
push eax
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0xd]
lea edx, [esi + 1]
mov eax, dword [ebp - 0x5c]
push ecx
push ebx
push ebx
push edi
push edx
push eax
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.004043d0
add esp, 0x1c
push 0xff
mov ebx, dword [ebp - 0xd]
push ebx
mov eax, dword [ebp - 0x5c]
push ebx
mov ecx, dword [ebp - 0x58]
push edi
push esi
push eax
push ecx
call fcn.004043d0
add esp, 0x1c
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x2c]
add eax, ecx
inc edx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x44], edx
jg 0x40d99d
mov eax, dword [ebp - 0x60]
dec eax
mov dword [ebp - 0x60], eax
jne 0x40d976
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
sub eax, 0x4c
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp - 0x24]
add eax, 0x4c
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x50], 0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 0x58], eax
jmp 0x40daf7
test edx, edx
jle 0x40dabe
mov eax, dword [esi + 0x958]
cmp eax, edx
jle 0x40dabe
mov ecx, dword [esi + 0x950]
test ecx, ecx
je 0x40dabe
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 0x40dacf
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40dacf
mov esi, eax
push 1
mov eax, dword [ebp - 0x30]
add eax, 0x4c
mov ecx, dword [ebp - 0x24]
push eax
fld dword [ecx]
call fcn.00420918
push eax
mov ecx, dword [ebp - 0x44]
fld dword [ecx]
call fcn.00420918
push eax
push esi
call fcn.00403e20
add esp, 0x14
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x30], eax
jmp 0x40db70
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 4]
test edx, edx
je 0x40db3f
mov dword [edx + 8], esi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 8]
test eax, eax
je 0x40db4c
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 4], 0
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 8], 0
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x40db6d
push 1
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40d225
mov ecx, 0x529dd0
call fcn.00413100
mov eax, dword [0x437170]
mov ecx, 0x529dd0
cmp eax, 1
sbb eax, eax
and eax, 2
push eax
call fcn.00412bf0
mov dword [0x437170], 0
push 0x3e8
mov ecx, 0x4f9d70
call fcn.0040ea50
mov ecx, dword [0x439fc4]
mov dword [0x527a44], eax
mov eax, dword [0x52b1d4]
mov dword [0x4f7828], eax
mov eax, dword [0x527a44]
sub eax, ecx
mov dword [0x43720c], eax
mov eax, dword [0x527a44]
mov dword [0x439fc4], eax
mov eax, dword [0x43720c]
cmp eax, 0x32
jl 0x40dbf0
mov eax, 0x32
mov dword [0x43720c], eax
mov eax, dword [0x4371a4]
test eax, eax
je 0x40dc08
mov dword [0x43720c], 0
fild dword [0x43720c]
mov eax, dword [0x437190]
mov ecx, dword [0x43720c]
add eax, ecx
mov edx, dword [0x43722c]
fmul dword [0x4330a8]
add edx, ecx
mov ebx, dword [0x437230]
add ebx, ecx
mov dword [0x437190], eax
mov dword [0x43722c], edx
mov dword [0x437230], ebx
fstp dword [0x437210]
cmp edx, 0x3e8
jle 0x40dd02
push 0x437c40
mov dword [ebp - 0x10], edx
fild dword [ebp - 0x10]
mov ecx, dword [0x437228]
mov dword [ebp - 0x10], ecx
fild dword [ebp - 0x10]
fdivp st(1)
fld dword [0x4330ac]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x40dc7e
fxch st(1)
fstp st(0)
fdivr dword [0x4330b0]
call fcn.00420918
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040f750
add esp, 8
mov dword [ebp - 4], 9
push eax
push str.FPS:
lea eax, [ebp - 0x34]
push eax
call fcn.0040f230
add esp, 0xc
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040f040
mov byte [ebp - 4], 0xb
add esp, 0xc
mov eax, dword [eax]
test eax, eax
jne 0x40dcd1
mov eax, 0x4330e4
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp - 4], 0xa
call fcn.0040dd62
mov byte [ebp - 4], 9
call fcn.0040dd50
mov dword [ebp - 4], 0xffffffff
call fcn.0040dd48
xor eax, eax
mov dword [0x43722c], eax
mov dword [0x437228], 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