Function at 0x5896e4
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x37
push 0
push 0
dec ecx
jne 0x5896ec
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x58b1c5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
fild dword [eax + 0x228]
fdiv dword [0x58b1d4]
mov eax, dword [ebp - 4]
fstp qword [eax + 0x360]
wait
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x358], edx
mov dword [eax + 0x35c], 0x3ff00000
xor eax, eax
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584b54
call fcn.0042479c
call fcn.00424168
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.005848a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
cmp dword [eax + 0x58], 0
je 0x5897d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
cmp dword [eax + 0x5c], 0
je 0x5897d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x58]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584860
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x5c]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.005847f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x74]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584828
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x78]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.0058480c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x7c]
mov ecx, 0xa
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584844
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x260]
sub eax, 0x48
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x264]
sub eax, 0x6e
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584bd0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
mov edx, 0x1e
call fcn.0041a4a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
mov dl, byte [0x58b1d8]
call fcn.0041a4d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
xor edx, edx
call fcn.0041a208
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x374]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x374]
call fcn.0041b40c
sar eax, 1
jns 0x589918
adc eax, 0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x74]
mov ecx, 0xa
cdq
idiv ecx
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x374]
call fcn.0041b3f0
sar eax, 1
jns 0x58996e
adc eax, 0
push eax
mov eax, dword [ebp - 0x24]
sar eax, 1
jns 0x589979
adc eax, 0
mov dword [ebp - 0x88], eax
fild dword [ebp - 0x88]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x374]
call fcn.0041b3f0
mov ebx, eax
test ebx, ebx
jns 0x5899d1
add ebx, 7
sar ebx, 3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x74]
mov ecx, 0xa
cdq
idiv ecx
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x58b080
inc eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x30], 0
xor eax, eax
push ebp
push 0x58b063
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x487d6c]
call fcn.00487dd0
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x8c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x8c]
lea edx, [ebp - 8]
call fcn.0049b190
mov eax, dword [ebp - 8]
call fcn.00487e44
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x34]
mov eax, dword [ebp - 8]
sub ebx, dword [eax + 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], 1
fild dword [ebp - 0x20]
fdiv dword [0x58b1dc]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x90]
call fcn.004098a4
push dword [ebp - 0x90]
push 0x58b1e8
mov dword [ebp - 0x84], ebx
fild dword [ebp - 0x84]
fdiv dword [0x58b1dc]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x94]
call fcn.004098a4
push dword [ebp - 0x94]
push 0x58b1f4
lea eax, [ebp - 0x64]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
cmp eax, dword [ebp - 0x44]
jne 0x589b17
xor eax, eax
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38c]
cmp eax, dword [ebp - 0x48]
jne 0x589c3c
push 0x58b200
lea edx, [ebp - 0x9c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x25c]
inc eax
call fcn.00408a7c
push dword [ebp - 0x9c]
push 0x58b20c
lea eax, [ebp - 0x98]
mov edx, 3
call fcn.00404080
mov eax, dword [ebp - 0x98]
push eax
push 0x58b200
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x25c]
inc eax
call fcn.00408a7c
push dword [ebp - 0xa4]
push 0x58b20c
lea eax, [ebp - 0xa0]
mov edx, 3
call fcn.00404080
mov eax, dword [ebp - 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x589bc8
adc eax, 0
push eax
mov eax, dword [ebp - 0x24]
sar eax, 1
jns 0x589bd3
adc eax, 0
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
push eax
mov eax, dword [ebp - 0x28]
sub eax, 0x32
mov dword [ebp - 0x88], eax
fild dword [ebp - 0x88]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ecx, eax
pop eax
pop edx
call fcn.0041b27c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584cac
xor eax, eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
mov edx, 0xc
call fcn.0041a4a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
mov dl, byte [0x58b1d4]
call fcn.0041a4d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0xc]
xor edx, edx
call fcn.0041a208
push 0x58b218
lea edx, [ebp - 0xac]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0xac]
push 0x58b228
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0xb0]
lea eax, [ebp - 0xa8]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0xa8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x7c]
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x4c]
pop edx
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x38c]
cdq
idiv ecx
mov edx, dword [ebp - 0x48]
inc edx
imul edx
add eax, dword [ebp - 0x4c]
sub eax, 0x1e
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 0x64]
call fcn.0041b40c
pop edx
sub edx, eax
push edx
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
mov ecx, 0xa
cdq
idiv ecx
mov edx, dword [ebp - 0x24]
sub edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x78]
mov ecx, 0xa
cdq
idiv ecx
pop edx
xchg edx, eax
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x388]
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x44]
inc eax
imul ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
push ecx
mov ecx, 0xa
cdq
idiv ecx
pop ecx
add ecx, eax
sub ecx, 0x1e
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x328]
mov eax, dword [esi + 0x7c]
push ecx
mov ecx, 0xa
cdq
idiv ecx
pop ecx
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x4c]
pop edx
sub eax, edx
mov edx, dword [ebp - 4]
push ecx
mov ecx, dword [edx + 0x38c]
cdq
idiv ecx
pop ecx
imul dword [ebp - 0x48]
add eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
mov edi, 0xa
cdq
idiv edi
mov edi, eax
mov eax, dword [ebp - 0x24]
sub eax, edi
push eax
mov eax, dword [esi + 0x78]
push ecx
mov ecx, 0xa
cdq
idiv ecx
pop ecx
pop edx
xchg edx, eax
sub eax, edx
mov edx, dword [ebp - 4]
push ecx
mov ecx, dword [edx + 0x388]
cdq
idiv ecx
pop ecx
imul dword [ebp - 0x44]
push eax
sub edi, 0x14
pop eax
add eax, edi
pop edx
call fcn.0040fa54
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x328]
mov eax, dword [esi + 0x70]
mov ecx, 0xa
cdq
idiv ecx
mov edx, dword [ebp - 0x24]
sub edx, eax
push edx
mov eax, dword [esi + 0x78]
mov ecx, 0xa
cdq
idiv ecx
pop edx
xchg edx, eax
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x388]
cdq
idiv ecx
sub eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
fild dword [ebp - 0x20]
fdivp st(1)
fstp qword [ebp - 0x58]
wait
push 0x58b218
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0xb8]
push 0x58b228
lea edx, [ebp - 0xbc]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0xbc]
lea eax, [ebp - 0xb4]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0xb4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
push eax
mov eax, dword [esi + 0x7c]
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x4c]
pop edx
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x38c]
cdq
idiv ecx
mov esi, eax
sub esi, 0x1e
pop eax
sub esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 0x64]
call fcn.0041b40c
sub esi, eax
mov dword [ebp - 0x84], esi
fild dword [ebp - 0x84]
mov dword [ebp - 0x88], ebx
fild dword [ebp - 0x88]
fdivp st(1)
fstp qword [ebp - 0x60]
wait
fld qword [ebp - 0x60]
fcomp qword [ebp - 0x58]
fnstsw ax
sahf
jae 0x589f4d
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x60]
mov dword [eax + 0x358], edx
mov edx, dword [ebp - 0x5c]
mov dword [eax + 0x35c], edx
fld qword [ebp - 0x60]
fcomp qword [ebp - 0x58]
fnstsw ax
sahf
jbe 0x589f6d
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x58]
mov dword [eax + 0x358], edx
mov edx, dword [ebp - 0x54]
mov dword [eax + 0x35c], edx
fld xword [0x58b234]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
mov eax, dword [ebp - 4]
fstp qword [eax + 0x358]
wait
mov eax, dword [ebp - 4]
cmp byte [eax + 0x368], 0
je 0x58a0fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
mov ecx, 0xa
cdq
idiv ecx
mov edx, dword [ebp - 0x24]
sub edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x78]
mov ecx, 0xa
cdq
idiv ecx
pop edx
xchg edx, eax
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x388]
cdq
idiv ecx
sub eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fsubp st(1)
fdiv dword [0x58b240]
call fcn.00402a48
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x7c]
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x4c]
pop edx
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x38c]
cdq
idiv ecx
sub eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
mov dword [ebp - 0x88], ebx
fild dword [ebp - 0x88]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fsubp st(1)
fdiv dword [0x58b240]
call fcn.00402a48
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x354]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
call fcn.0049c934
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
call fcn.00402a48
mov edx, eax
mov eax, esi
add eax, eax
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
call fcn.0049c960
mov dword [ebp - 0x84], ebx
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
call fcn.00402a48
mov edx, eax
mov eax, dword [ebp - 0x3c]
add eax, eax
add edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
call fcn.0049c994
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
mov edx, 0xffffff
call fcn.0049c9c8
jmp 0x58a1fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x70]
mov ecx, 0xa
cdq
idiv ecx
mov edx, dword [ebp - 0x24]
sub edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x78]
mov ecx, 0xa
cdq
idiv ecx
pop edx
xchg edx, eax
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x388]
cdq
idiv ecx
sub eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fsubp st(1)
fdiv dword [0x58b240]
call fcn.00402a48
mov esi, eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x7c]
mov ecx, 0xa
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x4c]
pop edx
sub eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x38c]
cdq
idiv ecx
sub eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
mov dword [ebp - 0x88], ebx
fild dword [ebp - 0x88]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fsubp st(1)
fdiv dword [0x58b240]
call fcn.00402a48
mov ebx, eax
fild dword [ebp - 0x7c]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x58a3a8
inc eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.0041070c
mov ebx, eax
cmp dword [ebp - 0x34], 0
jle 0x58a25d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov eax, dword [eax + 0x10]
call fcn.0041a6ec
xor edx, edx
mov dl, byte [ebx + 0xe]
mov ecx, dword [0x5c1a7c]
cmp eax, dword [ecx + edx*4]
je 0x58a25d
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov dword [ebp - 0x70], eax
movsx eax, word [ebx]
mov edx, dword [ebp - 8]
mov edi, dword [edx + 0x28]
sub eax, edi
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
mov dword [ebp - 0x88], edi
fild dword [ebp - 0x88]
faddp st(1)
call fcn.00402a48
mov edi, eax
movsx eax, word [ebx + 2]
mov edx, dword [ebp - 8]
sub eax, dword [edx + 0x2c]
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
mov eax, dword [ebp - 8]
fild dword [eax + 0x2c]
faddp st(1)
call fcn.00402a48
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x34], 0
jne 0x58a2e2
lea eax, [esi + edi]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x70]
call fcn.00584998
mov eax, dword [eax + 0x10]
xor edx, edx
mov dl, byte [ebx + 0xe]
mov ecx, dword [0x5c1a7c]
mov edx, dword [ecx + edx*4]
call fcn.0041a6f4
mov eax, dword [ebp - 0x70]
call fcn.00584998
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.0041b114
mov al, byte [ebx + 0xd]
and al, 1
cmp al, 1
jne 0x58a339
mov eax, dword [ebp - 4]
cmp byte [eax + 0x378], 0
jne 0x58a339
lea eax, [esi + edi]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], eax
jmp 0x58a39c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x368], 0
je 0x58a377
mov eax, dword [ebp - 0x10]
push eax
lea eax, [esi + edi]
push eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
push eax
push 2
xor eax, eax
mov al, byte [ebx + 0xe]
mov edx, dword [0x5c1a7c]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
mov ecx, dword [ebp - 0xc]
call fcn.0049ca50
jmp 0x58a38d
mov eax, dword [ebp - 0x70]
call fcn.00584998
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x3c]
lea edx, [esi + edi]
call fcn.0041b0b4
lea eax, [esi + edi]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x34]
dec dword [ebp - 0x6c]
jne 0x58a221
mov eax, dword [ebp - 4]
cmp byte [eax + 0x368], 0
je 0x58aa7c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x36c]
call fcn.0049ca00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
mov edx, 0xffffff
call fcn.004212e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
push eax
fild dword [ebp - 0x7c]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov edx, eax
pop ecx
pop eax
call fcn.0041af90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
xor edx, edx
call fcn.00421338
lea ecx, [ebp - 0xc4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xc4]
lea edx, [ebp - 0xc0]
call fcn.00408eb0
mov eax, dword [ebp - 0xc0]
push eax
lea ecx, [ebp - 0xcc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xcc]
lea edx, [ebp - 0xc8]
call fcn.00408eb0
mov eax, dword [ebp - 0xc8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
sar eax, 1
jns 0x58a4b7
adc eax, 0
push eax
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
lea ecx, [ebp - 0xd4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xd4]
lea edx, [ebp - 0xd0]
call fcn.00408eb0
mov eax, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58a526
adc eax, 0
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ebx, eax
add ebx, esi
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add ebx, eax
pop eax
sub ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x390], 0
je 0x58a711
mov eax, dword [ebp - 4]
cmp byte [eax + 0x392], 0
je 0x58a711
push 0x58b218
lea edx, [ebp - 0xdc]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0xdc]
push 0x58b228
lea edx, [ebp - 0xe0]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0xe0]
lea eax, [ebp - 0xd8]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0xd8]
push eax
push 0x58b218
lea edx, [ebp - 0xe8]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0xe8]
push 0x58b228
lea edx, [ebp - 0xec]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0xec]
lea eax, [ebp - 0xe4]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0xe4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58a63b
adc eax, 0
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ebx, eax
add ebx, esi
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add ebx, eax
pop eax
sub ebx, eax
push ebx
push 0x58b218
lea edx, [ebp - 0xf4]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0xf4]
push 0x58b228
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0xf8]
lea eax, [ebp - 0xf0]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0xf0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58a6d4
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop ecx
pop edx
call fcn.0041b27c
jmp 0x58a97e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x390], 0
je 0x58a84a
lea edx, [ebp - 0x100]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x100]
lea eax, [ebp - 0xfc]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0xfc]
push eax
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x108]
lea eax, [ebp - 0x104]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0x104]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58a792
adc eax, 0
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ebx, eax
add ebx, esi
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add ebx, eax
pop eax
sub ebx, eax
push ebx
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x10c]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0x10c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58a80d
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop ecx
pop edx
call fcn.0041b27c
jmp 0x58a97e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x392], 0
je 0x58a97e
lea edx, [ebp - 0x118]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x118]
lea eax, [ebp - 0x114]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x114]
push eax
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x11c]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x11c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58a8cb
adc eax, 0
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ebx, eax
add ebx, esi
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add ebx, eax
pop eax
sub ebx, eax
push ebx
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x128]
lea eax, [ebp - 0x124]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x124]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58a946
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop ecx
pop edx
call fcn.0041b27c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x391], 0
je 0x58b04e
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 0x64]
call fcn.0041b3f0
sar eax, 1
jns 0x58a9af
adc eax, 0
push eax
fild dword [ebp - 0x80]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add esi, eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add esi, eax
pop eax
sub esi, eax
push esi
push 0x58b218
lea edx, [ebp - 0x130]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0x130]
push 0x58b228
lea edx, [ebp - 0x134]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0x134]
lea eax, [ebp - 0x12c]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
mov eax, dword [ebp - 0x74]
add eax, 0x1c
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop ecx
pop edx
call fcn.0041b27c
jmp 0x58b04e
lea ecx, [ebp - 0x13c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x13c]
lea edx, [ebp - 0x138]
call fcn.00408eb0
mov eax, dword [ebp - 0x138]
push eax
lea ecx, [ebp - 0x144]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x144]
lea edx, [ebp - 0x140]
call fcn.00408eb0
mov eax, dword [ebp - 0x140]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
sar eax, 1
jns 0x58aaf5
adc eax, 0
push eax
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
lea ecx, [ebp - 0x14c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x370]
mov edx, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 0x148]
call fcn.00408eb0
mov eax, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58ab64
adc eax, 0
push eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add eax, esi
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x390], 0
je 0x58ad25
mov eax, dword [ebp - 4]
cmp byte [eax + 0x392], 0
je 0x58ad25
push 0x58b218
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0x154]
push 0x58b228
lea edx, [ebp - 0x158]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0x158]
lea eax, [ebp - 0x150]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0x150]
push eax
push 0x58b218
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0x160]
push 0x58b228
lea edx, [ebp - 0x164]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0x164]
lea eax, [ebp - 0x15c]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0x15c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58ac66
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
push 0x58b218
lea edx, [ebp - 0x16c]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0x16c]
push 0x58b228
lea edx, [ebp - 0x170]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0x170]
lea eax, [ebp - 0x168]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0x168]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58aced
adc eax, 0
push eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add eax, esi
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
jmp 0x58af68
mov eax, dword [ebp - 4]
cmp byte [eax + 0x390], 0
je 0x58ae49
lea edx, [ebp - 0x178]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x178]
lea eax, [ebp - 0x174]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0x174]
push eax
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x180]
lea eax, [ebp - 0x17c]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0x17c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58ada8
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
lea edx, [ebp - 0x188]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
mov ecx, dword [ebp - 0x188]
lea eax, [ebp - 0x184]
mov edx, 0x58b218
call fcn.0040400c
mov eax, dword [ebp - 0x184]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58ae11
adc eax, 0
push eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add eax, esi
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
jmp 0x58af68
mov eax, dword [ebp - 4]
cmp byte [eax + 0x392], 0
je 0x58af68
lea edx, [ebp - 0x190]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x190]
lea eax, [ebp - 0x18c]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x18c]
push eax
lea edx, [ebp - 0x198]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x198]
lea eax, [ebp - 0x194]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x194]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
sar ebx, 1
jns 0x58aecc
adc ebx, 0
mov eax, dword [ebp - 0x74]
add eax, 0xa
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
lea edx, [ebp - 0x1a0]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
mov ecx, dword [ebp - 0x1a0]
lea eax, [ebp - 0x19c]
mov edx, 0x58b24c
call fcn.0040400c
mov eax, dword [ebp - 0x19c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58af35
adc eax, 0
push eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add eax, esi
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x391], 0
je 0x58b04e
mov eax, dword [ebp - 0x64]
push eax
push 0x58b218
lea edx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x38]
call fcn.00408a7c
push dword [ebp - 0x1a8]
push 0x58b228
lea edx, [ebp - 0x1ac]
mov eax, dword [ebp - 0x2c]
call fcn.00408a7c
push dword [ebp - 0x1ac]
lea eax, [ebp - 0x1a4]
mov edx, 4
call fcn.00404080
mov eax, dword [ebp - 0x1a4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b40c
mov ebx, eax
mov eax, dword [ebp - 0x74]
add eax, 0x1c
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
add ebx, eax
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
mov edx, dword [ebp - 0x64]
call fcn.0041b3f0
sar eax, 1
jns 0x58b01b
adc eax, 0
push eax
fild dword [ebp - 0x20]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x358]
fdiv dword [0x58b240]
call fcn.00402a48
add esi, eax
pop eax
sub esi, eax
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
pop ecx
call fcn.0041b27c
inc dword [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.00402ff4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x58b074
inc dword [ebp - 0x30]
dec dword [ebp - 0x68]
jne 0x589a29
push 0x58b200
lea edx, [ebp - 0x1b4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x25c]
inc eax
call fcn.00408a7c
push dword [ebp - 0x1b4]
push 0x58b20c
lea eax, [ebp - 0x1b0]
mov edx, 3
call fcn.00404080
mov eax, dword [ebp - 0x1b0]
push eax
push 0x58b200
lea edx, [ebp - 0x1bc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x25c]
inc eax
call fcn.00408a7c
push dword [ebp - 0x1bc]
push 0x58b20c
lea eax, [ebp - 0x1b8]
mov edx, 3
call fcn.00404080
mov eax, dword [ebp - 0x1b8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
pop edx
call fcn.0041b3f0
sar eax, 1
jns 0x58b11f
adc eax, 0
push eax
mov eax, dword [ebp - 0x24]
sar eax, 1
jns 0x58b12a
adc eax, 0
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x84]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
pop edx
sub eax, edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584998
push eax
mov eax, dword [ebp - 0x28]
sub eax, 0x32
mov dword [ebp - 0x88], eax
fild dword [ebp - 0x88]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x360]
call fcn.00402a48
mov ecx, eax
pop eax
pop edx
call fcn.0041b27c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
call fcn.00584c14
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x308]
mov eax, dword [ebp - 4]
call fcn.0044efdc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58b1cc
lea eax, [ebp - 0x1bc]
mov edx, 0x4d
call fcn.00403d64
lea eax, [ebp - 0x64]
call fcn.00403d40
ret