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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x642bb4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x15c
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x18], 0
mov al, byte [esi + 0x1b28]
mov edx, dword [esi]
mov byte [esp + 0x4f], al
mov eax, 1
mov ecx, eax
mov ebx, eax
push edi
lea eax, [esp + 0xa0]
mov dword [esp + 0x88], ecx
push eax
mov ecx, esi
call dword [edx + 0x14]
mov ecx, dword [esi + 0x1bf0]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov edx, dword [ecx + 4]
mov eax, ebx
lea ecx, [edx + esi + 0x1bf0]
sub edi, ebx
sub ebp, eax
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x524cde
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x524cde
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x40], 0
jl 0x5253fe
jmp 0x524520
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x38], 0
jl 0x524cc2
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0x3f800000
mov eax, dword [esp + 0x40]
lea ecx, [eax - 1]
cmp ecx, eax
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x18], ecx
jg 0x524620
mov eax, dword [esp + 0x38]
lea ebx, [eax - 1]
cmp ebx, eax
jg 0x5245fa
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x5245ed
cmp eax, dword [esi + 0x1b00]
jge 0x5245ed
test ebx, ebx
jl 0x5245ed
cmp ebx, dword [esi + 0x1b04]
jge 0x5245ed
mov ecx, dword [esp + 0x18]
push ebx
push ecx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x5245ed
mov edx, dword [esp + 0x18]
push ebx
lea ecx, [esi + 0x1c00]
push edx
call fcn.0048f4e0
mov ecx, eax
call fcn.0048f570
fld dword [esp + 0x5c]
fcomp dword [eax]
fnstsw ax
test ah, 0x41
jne 0x5245ed
mov eax, dword [esp + 0x18]
push ebx
push eax
lea ecx, [esi + 0x1c00]
call fcn.0048f4e0
mov ecx, eax
call fcn.0048f570
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x38]
inc ebx
cmp ebx, eax
jle 0x524570
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jle 0x524561
fld dword [0x654e5c]
fcomp dword [esp + 0x5c]
fnstsw ax
test ah, 5
jp 0x524639
fld dword [esp + 0x5c]
lea ecx, [esp + 0x5c]
fcomp dword [0x6532d8]
fnstsw ax
test ah, 5
jp 0x524641
mov eax, ecx
jmp 0x524645
lea ecx, [esp + 0x54]
mov eax, ecx
jmp 0x524645
lea eax, [esp + 0x64]
mov edx, dword [eax]
push edx
mov ecx, 0x6c3c60
call fcn.00443d70
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x70]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.00527070
cmp eax, 1
jne 0x52489a
lea eax, [esp + 0x94]
lea ebx, [esi + 0x170]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x108]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x94]
mov dword [esp + 0x48], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xd4]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 1
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0xd4]
mov dword [esp + 0x24], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xa0]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 2
call fcn.0044fa50
fild dword [esp + 0x24]
mov ecx, dword [esi + 0xf4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x14]
mov edx, ecx
imul edx, eax
mov ebx, 0x100
sub ebx, edx
inc eax
imul eax, ecx
mov dword [esp + 0x24], ebx
mov edx, 0x100
fild dword [esp + 0x24]
sub edx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x24], edx
fdiv dword [esp + 0x14]
mov dword [esp + 0x18], ecx
inc eax
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
fdiv dword [esp + 0x14]
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fild dword [esp + 0x48]
fild dword [esp + 0x24]
fmul dword [esp + 0x18]
fdiv st(1)
fild dword [esp + 0x6c]
fmul dword [esp + 0x18]
lea eax, [ecx - 0x2a]
cdq
sub eax, edx
fdiv st(2)
sar eax, 1
mov dword [esp + 0x24], eax
mov eax, ecx
push ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esi + 0x1b04]
mov ebx, eax
sub ecx, edx
sar ebx, 1
dec ecx
fstp dword [esp + 0xb4]
fstp dword [esp + 0xb8]
fstp st(0)
fstp dword [esp + 0xbc]
fstp dword [esp + 0xc0]
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fild dword [esp + 0x48]
add eax, ebx
add eax, ebp
fmul dword [esp + 0x20]
push eax
fadd st(1)
call fcn.00611c14
fstp st(0)
sub eax, ebx
add eax, edi
push eax
lea ecx, [esp + 0x138]
call fcn.004062d0
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [esp + 0xc0]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [ecx + 8], ebx
mov ebx, dword [esp + 0xc8]
mov dword [ecx + 0xc], ebx
mov ebx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x4c]
call dword [edx + 0x28]
lea ecx, [esp + 0xa0]
jmp 0x524c91
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x70]
push edx
push eax
push ebx
mov ecx, esi
call fcn.00527070
cmp eax, 2
jne 0x524ca1
lea ecx, [esp + 0xbc]
lea ebx, [esi + 0x170]
push ecx
mov ecx, ebx
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0x174], 3
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x148]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 8]
lea ecx, [esp + 0xbc]
mov dword [esp + 0x14], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xc8]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 4
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x118]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0xc8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xe0]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 5
call fcn.0044fa50
fild dword [esp + 0x24]
mov ecx, dword [esi + 0xf4]
mov edx, ecx
imul edx, dword [esp + 0x34]
fstp dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, 0x100
sub eax, edx
mov edx, dword [esp + 0x34]
inc edx
imul edx, ecx
mov dword [esp + 0x24], eax
mov eax, 0x100
fild dword [esp + 0x24]
sub eax, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
fdiv dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
inc edx
fild dword [esp + 0x24]
mov dword [esp + 0x24], edx
fdiv dword [esp + 0x2c]
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fild dword [esp + 0x24]
fmul dword [esp + 0x18]
fdiv dword [esp + 0x14]
fild dword [esp + 0x6c]
lea eax, [ecx - 0x2a]
cdq
sub eax, edx
fmul dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x24], eax
mov eax, ecx
fdiv dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x1b04]
push ecx
sub eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x24], eax
fstp dword [esp + 0x8c]
fstp dword [esp + 0x90]
fstp dword [esp + 0x94]
fstp dword [esp + 0x98]
fild dword [esp + 0x2c]
fild dword [esp + 0x48]
fstp dword [esp + 0x2c]
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fld dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
fmul dword [esp + 0x20]
add eax, ecx
add eax, ebp
fadd st(1)
push eax
call fcn.00611c14
fstp st(0)
sub eax, dword [esp + 0x3c]
add eax, edi
push eax
lea ecx, [esp + 0x148]
call fcn.004062d0
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x30], eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x68]
call dword [edx + 0x28]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ecx, dword [esp + 0x6c]
xor edx, edx
cmp ecx, 5
sete dl
lea eax, [esp + 0xec]
push eax
mov ecx, ebx
mov dword [esp + 0x38], 1
add edx, 5
mov dword [esp + 0x70], edx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 6
call fcn.0044fa50
mov ecx, dword [esi + 0xf4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
mov edx, ecx
imul edx, eax
mov ebx, 0x100
sub ebx, edx
inc eax
imul eax, ecx
mov dword [esp + 0x1c], ebx
mov edx, 0x100
fild dword [esp + 0x1c]
sub edx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], edx
fdiv dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
inc eax
push ecx
push ecx
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
lea eax, [ecx - 0x2a]
cdq
fdiv dword [esp + 0x34]
sub eax, edx
sar eax, 1
fild dword [esp + 0x20]
fstp dword [esp + 0x20]
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, dword [esi + 0x1b04]
fmul dword [esp + 0x20]
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
fdiv dword [esp + 0x1c]
mov ebx, eax
sub ecx, edx
sar ebx, 1
dec ecx
fild dword [esp + 0x74]
fmul dword [esp + 0x20]
fdiv dword [esp + 0x1c]
fstp dword [esp + 0x7c]
fstp dword [esp + 0x80]
fstp dword [esp + 0x84]
fstp dword [esp + 0x88]
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fld dword [esp + 0x2c]
fmul dword [esp + 0x20]
add eax, ebx
add eax, ebp
push eax
fadd st(1)
call fcn.00611c14
fstp st(0)
sub eax, ebx
add eax, edi
push eax
lea ecx, [esp + 0x108]
call fcn.004062d0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x48]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [esp + 0x88]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x8c]
mov dword [ecx + 8], ebx
mov ebx, dword [esp + 0x90]
mov dword [ecx + 0xc], ebx
mov ebx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x68]
call dword [edx + 0x28]
lea ecx, [esp + 0xec]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ecx, 0x6c3c60
call fcn.004419c0
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x1b04]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jle 0x524546
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x40], eax
jle 0x524520
jmp 0x5253fe
mov al, byte [esi + 0x1f0c]
test al, al
je 0x5253fe
mov eax, dword [esi + 0x1ba8]
test eax, eax
jle 0x524d5b
mov al, byte [esi + 0x20a8]
test al, al
je 0x524d5b
mov eax, dword [esi + 0x8c]
lea ebx, [eax - 0x15e]
test ebx, ebx
jge 0x524d13
lea ebx, [eax + 0x3c]
mov ecx, dword [esi + 0x94]
mov edx, dword [esi + 0x90]
push ecx
push edx
push eax
sub esp, 0x18
lea eax, [esi + 0x74]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
call fcn.00403e10
push 0x12c
push ebx
lea ecx, [esi + 0x58]
call fcn.00528390
mov ecx, dword [esi + 0x1f78]
mov byte [esi + 0x1f70], al
mov byte [esi + 0x20a8], 0
mov dword [esi + 0x1f74], ecx
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x6c], 0
jl 0x5253fe
mov eax, dword [esi + 0x1b04]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x40], ebx
jl 0x5253e7
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3c]
push eax
push ebx
push ecx
mov ecx, esi
call fcn.00527070
cmp eax, 1
jne 0x524fc9
lea edx, [esp + 0x94]
lea ebx, [esi + 0x170]
push edx
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 7
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0xf8]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 8]
lea ecx, [esp + 0x94]
mov dword [esp + 0x64], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xd4]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 8
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x138]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0xd4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xa0]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 9
call fcn.0044fa50
fild dword [esp + 0x1c]
mov ecx, dword [esi + 0xf4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x24]
mov edx, ecx
imul edx, eax
mov ebx, 0x100
sub ebx, edx
inc eax
imul eax, ecx
mov dword [esp + 0x1c], ebx
mov edx, 0x100
fild dword [esp + 0x1c]
sub edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], edx
fdiv dword [esp + 0x24]
mov dword [esp + 0x18], ecx
inc eax
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
fdiv dword [esp + 0x24]
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fild dword [esp + 0x64]
fild dword [esp + 0x1c]
fmul dword [esp + 0x18]
fdiv st(1)
fild dword [esp + 0x38]
fmul dword [esp + 0x18]
lea eax, [ecx - 0x2a]
cdq
sub eax, edx
fdiv st(2)
sar eax, 1
mov dword [esp + 0x1c], eax
mov eax, ecx
push ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + 0x1b04]
mov ebx, eax
sub ecx, edx
sar ebx, 1
dec ecx
fstp dword [esp + 0xb4]
fstp dword [esp + 0xb8]
fstp st(0)
fstp dword [esp + 0xbc]
fstp dword [esp + 0xc0]
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fild dword [esp + 0x74]
add eax, ebx
add eax, ebp
fmul dword [esp + 0x20]
push eax
fadd st(1)
call fcn.00611c14
fstp st(0)
sub eax, ebx
add eax, edi
push eax
lea ecx, [esp + 0x128]
call fcn.004062d0
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0x48]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [esp + 0xc0]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [ecx + 8], ebx
mov ebx, dword [esp + 0xc8]
mov dword [ecx + 0xc], ebx
mov ebx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x68]
call dword [edx + 0x28]
lea ecx, [esp + 0xa0]
jmp 0x5253c0
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x3c]
push edx
push ebx
push eax
mov ecx, esi
call fcn.00527070
cmp eax, 2
jne 0x5253d4
lea ecx, [esp + 0xbc]
lea ebx, [esi + 0x170]
push ecx
mov ecx, ebx
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xa
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x148]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 8]
lea ecx, [esp + 0xbc]
mov dword [esp + 0x64], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xc8]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xb
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x128]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0xc8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
lea eax, [esp + 0xe0]
push eax
mov ecx, ebx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xc
call fcn.0044fa50
fild dword [esp + 0x1c]
mov ecx, dword [esi + 0xf4]
mov edx, ecx
imul edx, dword [esp + 0x34]
fstp dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, 0x100
sub eax, edx
mov edx, dword [esp + 0x34]
inc edx
imul edx, ecx
mov dword [esp + 0x1c], eax
mov eax, 0x100
fild dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
fdiv dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
inc edx
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
fdiv dword [esp + 0x2c]
fild dword [esp + 0x18]
fstp dword [esp + 0x18]
fild dword [esp + 0x64]
fstp dword [esp + 0x5c]
fild dword [esp + 0x1c]
fmul dword [esp + 0x18]
fdiv dword [esp + 0x5c]
fild dword [esp + 0x38]
lea eax, [ecx - 0x2a]
cdq
sub eax, edx
fmul dword [esp + 0x18]
sar eax, 1
mov dword [esp + 0x1c], eax
mov eax, ecx
fdiv dword [esp + 0x5c]
cdq
sub eax, edx
sar eax, 1
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x1b04]
push ecx
sub eax, dword [esp + 0x48]
dec eax
fstp dword [esp + 0x8c]
fstp dword [esp + 0x90]
fstp dword [esp + 0x94]
fstp dword [esp + 0x98]
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
fild dword [esp + 0x74]
fstp dword [esp + 0x50]
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fld dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
fmul dword [esp + 0x20]
add eax, ecx
add eax, ebp
fadd st(1)
push eax
call fcn.00611c14
fstp st(0)
sub eax, dword [esp + 0x3c]
add eax, edi
push eax
lea ecx, [esp + 0x168]
call fcn.004062d0
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x14], eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x44]
call dword [edx + 0x28]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp ecx, 5
sete dl
lea eax, [esp + 0xec]
push eax
mov ecx, ebx
mov dword [esp + 0x38], 1
add edx, 5
mov dword [esp + 0x3c], edx
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xd
call fcn.0044fa50
mov ecx, dword [esi + 0xf4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov edx, ecx
imul edx, eax
mov ebx, 0x100
sub ebx, edx
inc eax
imul eax, ecx
mov dword [esp + 0x1c], ebx
mov edx, 0x100
fild dword [esp + 0x1c]
sub edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], edx
fdiv dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
inc eax
push ecx
push ecx
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
lea eax, [ecx - 0x2a]
cdq
fdiv dword [esp + 0x34]
sub eax, edx
sar eax, 1
fild dword [esp + 0x20]
fstp dword [esp + 0x20]
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, dword [esi + 0x1b04]
fmul dword [esp + 0x20]
cdq
sub eax, edx
mov edx, dword [esp + 0x48]
fdiv dword [esp + 0x64]
mov ebx, eax
sub ecx, edx
sar ebx, 1
dec ecx
fild dword [esp + 0x40]
fmul dword [esp + 0x20]
fdiv dword [esp + 0x64]
fstp dword [esp + 0x7c]
fstp dword [esp + 0x80]
fstp dword [esp + 0x84]
fstp dword [esp + 0x88]
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
fadd st(1)
call fcn.00611c14
fld dword [esp + 0x50]
fmul dword [esp + 0x20]
add eax, ebx
add eax, ebp
push eax
fadd st(1)
call fcn.00611c14
fstp st(0)
sub eax, ebx
add eax, edi
push eax
lea ecx, [esp + 0x118]
call fcn.004062d0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x24]
mov edx, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [esp + 0x88]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x8c]
mov dword [ecx + 8], ebx
mov ebx, dword [esp + 0x90]
mov dword [ecx + 0xc], ebx
mov ebx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x44]
call dword [edx + 0x28]
lea ecx, [esp + 0xec]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ebx, dword [esp + 0x40]
mov eax, dword [esi + 0x1b04]
inc ebx
cmp ebx, eax
mov dword [esp + 0x40], ebx
jle 0x524d85
mov eax, dword [esp + 0x6c]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x6c], eax
jle 0x524d71
mov eax, 1
mov ecx, eax
add ebp, ecx
mov ecx, dword [esi + 0x1bf0]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1bf0]
add edi, eax
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x52585f
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x52585f
mov eax, dword [esi + 0x1b00]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x34], ebx
jle 0x5262dd
lea esp, [esp]
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x40], 0
jle 0x525847
mov dword [esp + 0x2c], 0xffffffff
mov edi, edi
mov eax, dword [esp + 0x40]
push eax
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x525827
mov eax, dword [esi + 0xf4]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
imul ecx, eax
mov ebx, dword [esi + 0x1b04]
imul edx, eax
imul ebx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0x74], eax
mov eax, ebp
add eax, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x74]
add ecx, eax
add ebx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x38]
push ebx
lea ecx, [esi + 0x1c00]
mov dword [esp + 0x24], 0
mov dword [esp + 0x6c], 0x3f800000
call fcn.0048f4e0
mov ecx, eax
call fcn.0048f570
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx]
fnstsw ax
test ah, 5
jnp 0x525525
lea ecx, [esp + 0x1c]
mov eax, ecx
jmp 0x52553c
fld dword [ecx]
fcomp dword [0x6532d8]
fnstsw ax
test ah, 5
jp 0x525538
mov eax, ecx
jmp 0x52553c
lea eax, [esp + 0x64]
mov edx, dword [eax]
mov ecx, 0x6c3c60
mov dword [esp + 0x14], edx
call fcn.004441f0
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sub esp, 0xc
mov eax, esp
mov ecx, 0x6c3c60
fstp dword [esp + 0x3c]
mov dword [esp + 0x60], esp
fild dword [esp + 0x48]
mov dword [eax + 8], 0
fst dword [esp + 0x54]
fadd dword [esp + 0x3c]
fild dword [esp + 0x44]
fst dword [esp + 0x68]
fadd dword [esp + 0x3c]
fstp dword [eax]
fstp dword [eax + 4]
call fcn.00440b50
mov eax, dword [esi + 0x1bd8]
test eax, eax
jne 0x5255ae
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
jmp 0x5255c2
fld dword [esp + 0x14]
fmul dword [0x65e788]
fsubr dword [0x661f00]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, 0x6c3c60
call fcn.00440f00
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sub esp, 0xc
fld dword [esp + 0x54]
mov eax, esp
mov ecx, 0x6c3c60
fadd st(1)
mov dword [esp + 0x54], esp
mov dword [eax + 8], 0
fstp dword [esp + 0x60]
fadd dword [esp + 0x68]
fld dword [esp + 0x60]
fchs
fxch st(1)
fchs
fstp dword [eax]
fstp dword [eax + 4]
call fcn.00440b50
mov edx, dword [esp + 0x14]
push edx
mov ecx, 0x6c3c60
call fcn.00443d70
mov eax, dword [esp + 0x40]
push eax
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 0xc], 2
jne 0x52569f
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esi + 0x158]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xe
call fcn.0044fa50
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0x94]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525813
mov edx, dword [esp + 0x40]
push edx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 0xc], 1
jne 0x525714
lea eax, [esp + 0xd4]
push eax
lea ecx, [esi + 0x14c]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0xf
call fcn.0044fa50
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0xd4]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525813
mov edx, dword [esp + 0x40]
push edx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x52578a
lea eax, [esp + 0xa0]
push eax
lea ecx, [esi + 0x164]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x10
call fcn.0044fa50
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0xa0]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525813
push 0x676
push str.c:work_fishdom_aqua_gameRifGameFieldControl.h
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [eax], ecx
mov dword [esp + 0x74], esp
mov dword [esp + 0x68], ecx
mov dword [ecx + 0x14], eax
push 0x65409d
push str.false
mov dword [esp + 0x19c], 0x11
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x80], esp
mov dword [eax], ecx
mov dword [esp + 0x1ac], 0x12
mov dword [esp + 0x80], ecx
mov dword [ecx + 0x14], eax
push 0x65341c
push str.Assertion_failed
mov byte [esp + 0x1b4], 0x13
call fcn.00403b50
mov dword [esp + 0x1ac], 0xffffffff
call fcn.00405c50
add esp, 0x38
mov ecx, 0x6c3c60
call fcn.004419c0
mov ecx, 0x6c3c60
call fcn.004412b0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x1b04]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], edx
jl 0x525480
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
mov dword [esp + 0x34], ebx
jl 0x525460
jmp 0x5262dd
mov al, byte [esi + 0x1f0c]
test al, al
je 0x5262dd
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x38], 0
jle 0x525ded
jmp 0x525890
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x40], 0
jle 0x525dd6
mov dword [esp + 0x14], 0xffffffff
mov edi, edi
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
push edx
push eax
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x525db6
mov eax, dword [esi + 0xf4]
mov ebx, dword [esi + 0x1b04]
mov ecx, dword [esp + 0x14]
imul ebx, eax
mov edx, dword [esp + 0x38]
imul ecx, eax
imul edx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0x74], eax
mov eax, ebp
add eax, ebx
add ecx, eax
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
add ebx, edx
mov edx, dword [esp + 0x38]
push ecx
push edx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 0xc], 2
jne 0x525ab2
mov eax, dword [esi + 0x1f10]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x1f10]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x525a5f
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x525a5f
mov edx, dword [esi + 0x1f10]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1f10]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x5259ca
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x5259ca
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x5259ca
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
fstp dword [esp + 0x24]
jmp 0x5259d2
mov dword [esp + 0x24], 0x3f800000
mov ecx, dword [esi + 0x1f28]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1f28]
call fcn.0048ea80
mov ecx, eax
call fcn.00527480
dec eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0x24]
fcom dword [0x654e5c]
fnstsw ax
test ah, 1
jne 0x525a10
fadd dword [0x6532dc]
jmp 0x525a16
fsub dword [0x6532dc]
call fcn.00611c14
push eax
mov eax, dword [esi + 0x1f28]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x1f28]
call fcn.0048ea80
mov ecx, eax
call fcn.0048e650
mov edx, dword [esp + 0x58]
mov eax, dword [esi + 0x1f28]
mov ecx, dword [eax + 4]
push edx
push ebx
lea ecx, [ecx + esi + 0x1f28]
call fcn.0048ea80
mov ecx, eax
call fcn.0049f130
jmp 0x525d23
lea edx, [esp + 0x94]
push edx
lea ecx, [esi + 0x158]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x14
call fcn.0044fa50
mov ecx, dword [esp + 0x58]
mov edx, dword [eax]
push ecx
push ebx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0x94]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525d23
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
push edx
push eax
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 0xc], 1
jne 0x525c52
mov ecx, dword [esi + 0x1f10]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1f10]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x525bff
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x525bff
mov eax, dword [esi + 0x1f10]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x1f10]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x525b6a
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x525b6a
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x525b6a
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
fstp dword [esp + 0x48]
jmp 0x525b72
mov dword [esp + 0x48], 0x3f800000
mov edx, dword [esi + 0x1f1c]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1f1c]
call fcn.0048ea80
mov ecx, eax
call fcn.00527480
dec eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0x48]
fcom dword [0x654e5c]
fnstsw ax
test ah, 1
jne 0x525bb0
fadd dword [0x6532dc]
jmp 0x525bb6
fsub dword [0x6532dc]
call fcn.00611c14
mov ecx, dword [esi + 0x1f1c]
mov edx, dword [ecx + 4]
push eax
lea ecx, [edx + esi + 0x1f1c]
call fcn.0048ea80
mov ecx, eax
call fcn.0048e650
mov ecx, dword [esi + 0x1f1c]
mov eax, dword [esp + 0x58]
mov edx, dword [ecx + 4]
push eax
push ebx
lea ecx, [edx + esi + 0x1f1c]
call fcn.0048ea80
mov ecx, eax
call fcn.0049f130
jmp 0x525d23
lea eax, [esp + 0xd4]
push eax
lea ecx, [esi + 0x14c]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x15
call fcn.0044fa50
mov ecx, dword [esp + 0x58]
mov edx, dword [eax]
push ecx
push ebx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0xd4]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525d23
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
push edx
push eax
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x525cc5
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esi + 0x164]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x16
call fcn.0044fa50
mov ecx, dword [esp + 0x58]
mov edx, dword [eax]
push ecx
push ebx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0xa0]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
jmp 0x525d23
push 0x696
push str.c:work_fishdom_aqua_gameRifGameFieldControl.h
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x3c], esp
lea edx, [esp + 0x73]
push edx
push str.false
call fcn.00403db0
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x9c], esp
lea eax, [esp + 0x8b]
push eax
push str.Assertion_failed
mov dword [esp + 0x1b4], 0x17
call fcn.00403db0
mov dword [esp + 0x1ac], 0xffffffff
call fcn.00405c50
add esp, 0x38
mov ecx, dword [esi + 0x1b6c]
mov eax, dword [esi + 0x1b68]
sub ecx, eax
and ecx, 0xfffffff8
cmp ecx, 8
jne 0x525db6
mov ecx, dword [eax]
cmp ecx, dword [esp + 0x38]
mov eax, dword [eax + 4]
jne 0x525db6
cmp eax, dword [esp + 0x40]
jne 0x525db6
push 0
mov ecx, 0x6c3c60
call fcn.00401610
push 0x3ecccccd
mov ecx, 0x6c3c60
call fcn.00443d70
mov eax, dword [esi + 0xf4]
mov edx, dword [esp + 0x58]
push eax
push eax
push edx
push ebx
lea ecx, [esp + 0x108]
call fcn.004062d0
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
mov ecx, 0x6c3c60
call fcn.00401720
mov ecx, 0x6c3c60
call fcn.004419c0
push 1
mov ecx, 0x6c3c60
call fcn.00401610
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x1b04]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], edx
jl 0x5258b0
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x525890
mov eax, dword [esi + 0x1f8c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x1f8c]
test eax, eax
lea ecx, [ecx + esi + 0x1f8c]
je 0x5260aa
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x525e4e
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x525e4e
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x525e4e
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
jmp 0x525e54
fld dword [0x6532d8]
fmul dword [0x663214]
mov eax, dword [esi + 0x1b00]
xor ebx, ebx
test eax, eax
fmul dword [0x6562a0]
mov dword [esp + 0x5c], ebx
fstp dword [esp + 0x54]
jle 0x5262dd
jmp 0x525e80
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x30], 0
jle 0x526092
fild dword [esp + 0x5c]
mov dword [esp + 0x2c], 0xffffffff
fstp dword [esp + 0x1c]
jmp 0x525eb0
fld dword [esp + 0x1c]
mov edx, dword [esi + 0x1b00]
fmul dword [0x663214]
dec edx
mov dword [esp + 0x64], edx
mov eax, dword [esi + 0x1b04]
fadd st(0), st(0)
dec eax
mov ecx, dword [esp + 0x30]
push ecx
fidiv dword [esp + 0x68]
mov dword [esp + 0x68], eax
push ebx
lea ecx, [esi + 0x284]
fimul dword [esp + 0x38]
fidiv dword [esp + 0x6c]
fstp dword [esp + 0x6c]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x526072
mov edx, dword [esp + 0x30]
push edx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x526072
fld dword [esp + 0x54]
fsub dword [esp + 0x64]
fst dword [esp + 0x14]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 1
jne 0x526072
fld dword [0x663214]
fadd st(0), st(0)
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x526072
mov eax, dword [esi + 0xf4]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
imul ecx, eax
mov ebx, dword [esi + 0x1b04]
imul edx, eax
imul ebx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0x74], eax
mov eax, ebp
add eax, ebx
add ecx, eax
mov eax, dword [0x6c3cb4]
push 5
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x78]
push 0x13
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
push eax
add ebx, edx
call dword [ecx + 0xc8]
mov eax, dword [0x6c3cb4]
mov edx, dword [eax]
push 2
push 0x14
push eax
call dword [edx + 0xc8]
fld dword [esp + 0x14]
push ecx
fcos
mov ecx, 0x6c3c60
fsubr dword [0x6532d8]
fmul dword [0x65b934]
fstp dword [esp]
call fcn.00443d70
lea eax, [esp + 0x94]
push eax
lea ecx, [esi + 0x140]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x1b
call fcn.0044fa50
mov ecx, 0xb
mov edx, ecx
mov edx, ebx
mov ebx, dword [esp + 0x28]
sub edx, ecx
sub ebx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
push ebx
mov ecx, eax
mov eax, dword [esp + 0x68]
push edx
call dword [eax + 0x30]
lea ecx, [esp + 0x94]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ecx, 0x6c3c60
call fcn.004419c0
mov eax, dword [0x6c3cb4]
mov edx, dword [eax]
push 5
push 0x13
push eax
call dword [edx + 0xc8]
mov eax, dword [0x6c3cb4]
mov ecx, dword [eax]
push 6
push 0x14
push eax
call dword [ecx + 0xc8]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x1b04]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
jl 0x525eb0
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
mov dword [esp + 0x5c], ebx
jl 0x525e80
jmp 0x5262dd
mov edx, dword [esi + 0x2050]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi + 0x2050]
test ecx, ecx
lea eax, [eax + esi + 0x2050]
je 0x5262dd
mov eax, dword [esi + 0x1b00]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x24], ebx
jle 0x5262dd
lea ecx, [ecx]
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x5262ca
mov dword [esp + 0x2c], 0xffffffff
mov edi, edi
mov ecx, dword [esp + 0x14]
push ecx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x5262aa
mov edx, dword [esp + 0x14]
push edx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x5262aa
mov eax, dword [esi + 0xf4]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
imul ecx, eax
mov ebx, dword [esi + 0x1b04]
imul edx, eax
imul ebx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0x74], eax
mov eax, ebp
add eax, ebx
add ecx, eax
mov eax, dword [0x6c3cb4]
push 5
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x78]
push 0x13
mov dword [esp + 0x70], ecx
mov ecx, dword [eax]
push eax
add ebx, edx
call dword [ecx + 0xc8]
mov eax, dword [0x6c3cb4]
mov edx, dword [eax]
push 2
push 0x14
push eax
call dword [edx + 0xc8]
mov eax, dword [esi + 0x2050]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x2050]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x5261f5
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x5261f5
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x5261f5
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
jmp 0x5261fb
fld dword [0x6532d8]
fmul dword [0x663214]
push ecx
mov ecx, 0x6c3c60
fsin
fstp dword [esp]
call fcn.00443d70
lea edx, [esp + 0x94]
push edx
lea ecx, [esi + 0x140]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x1d
call fcn.0044fa50
mov ecx, 0xb
mov edx, ecx
mov edx, ebx
mov ebx, dword [esp + 0x68]
sub edx, ecx
sub ebx, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
push ebx
mov ecx, eax
mov eax, dword [esp + 0x20]
push edx
call dword [eax + 0x30]
lea ecx, [esp + 0x94]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ecx, 0x6c3c60
call fcn.004419c0
mov eax, dword [0x6c3cb4]
mov edx, dword [eax]
push 5
push 0x13
push eax
call dword [edx + 0xc8]
mov eax, dword [0x6c3cb4]
mov ecx, dword [eax]
push 6
push 0x14
push eax
call dword [ecx + 0xc8]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x1b04]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edx
jl 0x526100
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
mov dword [esp + 0x24], ebx
jl 0x5260e0
mov edx, dword [esi + 0x1be4]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1be4]
cmp dword [ecx], 0
je 0x526434
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
je 0x526434
mov eax, dword [esi + 0x1b00]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x24], ebx
jle 0x526434
lea ebx, [ebx]
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x526421
mov dword [esp + 0x2c], 0xffffffff
mov edi, edi
mov ecx, dword [esp + 0x14]
push ecx
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp byte [eax], 0
je 0x526401
mov eax, dword [esi + 0xf4]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
imul ecx, eax
mov ebx, dword [esi + 0x1b04]
imul edx, eax
imul ebx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0x74], eax
mov eax, ebp
add eax, ebx
add ecx, eax
mov eax, dword [esi + 0x1be4]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
add ebx, edx
lea edx, [esp + 0x94]
push edx
lea ecx, [ecx + esi + 0x1be4]
call fcn.0048ea80
mov ecx, eax
add ecx, 0x54
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0x174], 0x21
call fcn.0044fa50
mov ecx, dword [esp + 0x20]
mov edx, dword [eax]
push ecx
push ebx
mov ecx, eax
call dword [edx + 0x30]
lea ecx, [esp + 0x94]
mov dword [esp + 0x174], 0xffffffff
call fcn.00450980
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x1b04]
inc eax
dec edx
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edx
jl 0x526340
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
mov dword [esp + 0x24], ebx
jl 0x526320
mov edx, dword [esi + 0x1be4]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1be4]
cmp dword [ecx], 0
je 0x526459
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
jne 0x526ab6
mov ebx, dword [esi + 0x12c]
lea eax, [esi + 0x12c]
cmp ebx, eax
setne al
test al, al
je 0x52649d
mov edi, edi
cmp dword [ebx + 8], 0xffffffff
jne 0x52648c
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 4]
lea eax, [ebx + 0xc]
add ecx, eax
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
mov ebx, dword [ebx]
lea eax, [esi + 0x12c]
cmp ebx, eax
setne al
test al, al
jne 0x526470
mov eax, dword [esi + 0x1bf0]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x1bf0]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x52699c
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x52699c
mov eax, dword [esi + 0x1bd8]
mov edx, dword [esi + 0x1bf0]
test eax, eax
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1bf0]
je 0x52655c
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x526548
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x526548
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x526548
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
fmul dword [0x65b978]
fsub dword [0x6562a0]
jmp 0x5265b0
fld dword [0x6532d8]
fmul dword [0x65b978]
fsub dword [0x6562a0]
jmp 0x5265b0
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x52659e
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x52659e
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x52659e
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
jmp 0x5265a4
fld dword [0x6532d8]
fmul dword [0x65b978]
fsubr dword [0x6532d8]
fstp dword [esp + 0x24]
mov dword [esp + 0x1c], 0
fld dword [0x654e5c]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 5
lea eax, [esp + 0x24]
jnp 0x5265d5
lea eax, [esp + 0x1c]
mov ecx, dword [eax]
push ecx
mov ecx, 0x6c3c60
call fcn.00443d70
mov ecx, esi
call fcn.00527b10
mov ecx, 0x6c3c60
call fcn.004419c0
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x18], 0
jle 0x526ab6
lea esp, [esp]
mov eax, dword [esi + 0x1b04]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x34], ebx
jle 0x526980
mov dword [esp + 0x14], 0xffffffff
lea esp, [esp]
mov edx, dword [esp + 0x18]
push ebx
push edx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x526964
mov eax, dword [esp + 0x18]
push ebx
push eax
lea ecx, [esi + 0x1c00]
mov dword [esp + 0x24], 0
mov dword [esp + 0x6c], 0x3f800000
call fcn.0048f4e0
mov ecx, eax
call fcn.0048f570
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx]
fnstsw ax
test ah, 5
jnp 0x526693
lea ecx, [esp + 0x1c]
mov eax, ecx
jmp 0x5266aa
fld dword [ecx]
fcomp dword [0x6532d8]
fnstsw ax
test ah, 5
jp 0x5266a6
mov eax, ecx
jmp 0x5266aa
lea eax, [esp + 0x64]
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, 0x6c3c60
call fcn.004441f0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push edx
lea ebx, [esi + 0x258]
push eax
mov ecx, ebx
call fcn.0048f820
mov ecx, eax
call fcn.0048f600
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.0048ea80
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x34]
lea eax, [ecx + eax + 4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
push edx
test ecx, ecx
push eax
mov ecx, ebx
je 0x52677e
call fcn.0048f820
mov ecx, eax
call fcn.0048f600
mov edx, dword [eax]
lea ecx, [esp + 0xd4]
push ecx
mov ecx, dword [edx + 4]
add ecx, eax
call fcn.0048ea80
mov ecx, eax
call fcn.00527340
mov ebx, eax
fld dword [ebx + 4]
call fcn.00611c14
fld dword [ebx]
mov dword [esp + 0x54], eax
call fcn.00611c14
mov ecx, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
add ecx, ebp
mov dword [esp + 0x44], ecx
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fild dword [esp + 0x44]
mov dword [esp + 0x5c], eax
mov ebx, edi
mov dword [esp + 0x88], ebp
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], ecx
jmp 0x526891
call fcn.0048f820
mov ecx, eax
call fcn.0048f600
mov ecx, dword [esi + 0xf4]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
imul edx, ecx
mov dword [esp + 0xc8], edx
imul ebx, ecx
mov edx, dword [esi + 0x1b04]
imul edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [edx + 4]
add ecx, eax
call fcn.0048ea80
mov ecx, eax
call fcn.00527340
fld dword [eax + 4]
mov dword [esp + 0x54], eax
call fcn.00611c14
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
fld dword [eax]
call fcn.00611c14
mov ecx, dword [esp + 0x48]
lea edx, [eax + edi]
xor eax, eax
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x2c]
add ecx, ebp
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xec]
add ecx, edx
mov edx, dword [esp + 0xe4]
add eax, edx
mov edx, dword [esp + 0xc8]
add ecx, edx
mov edx, dword [esp + 0x18]
add eax, ebx
mov ebx, dword [esi + 0x1b04]
mov dword [esp + 0x6c], ecx
fild dword [esp + 0x6c]
mov dword [esp + 0x70], eax
fstp dword [esp + 0x74]
mov eax, dword [esp + 0x74]
fild dword [esp + 0x70]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xf4]
imul ebx, eax
imul edx, eax
fstp dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
imul ecx, eax
xor eax, eax
mov eax, edi
mov dword [esp + 0xa0], eax
mov eax, ebp
add eax, ebx
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0xa0]
add edx, ebx
add eax, ecx
mov ebx, edx
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sub esp, 0xc
mov eax, esp
mov ecx, 0x6c3c60
fstp dword [esp + 0x3c]
mov dword [esp + 0x60], esp
fld dword [esp + 0x6c]
mov dword [eax + 8], 0
fadd dword [esp + 0x3c]
fld dword [esp + 0x68]
fadd dword [esp + 0x3c]
fstp dword [eax]
fstp dword [eax + 4]
call fcn.00440b50
fld dword [esp + 0x60]
sub esp, 0xc
fadd dword [0x65caec]
mov eax, esp
fld dword [esp + 0x68]
mov ecx, 0x6c3c60
fadd dword [0x65caec]
mov dword [esp + 0x60], esp
mov dword [eax + 8], 0
fstp dword [esp + 0xb8]
fchs
fld dword [esp + 0xb8]
fchs
fstp dword [eax]
fstp dword [eax + 4]
call fcn.00440b50
fld dword [esp + 0x24]
push ecx
fmul dword [esp + 0x28]
mov ecx, 0x6c3c60
fstp dword [esp]
call fcn.00443d70
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
push edx
push ebx
push eax
push ecx
mov ecx, esi
call fcn.00527cb0
mov ecx, 0x6c3c60
call fcn.004419c0
mov ecx, 0x6c3c60
call fcn.004412b0
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x1b04]
inc ebx
dec ecx
cmp ebx, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], ecx
jl 0x526630
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x526610
jmp 0x526ab6
mov al, byte [esi + 0x1f0c]
test al, al
je 0x526ab6
mov ecx, esi
call fcn.00527b10
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x40], 0
jle 0x526ab6
jmp 0x5269d0
mov eax, dword [esi + 0x1b04]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x14], ebx
jle 0x526a9f
mov edx, dword [esp + 0x40]
push ebx
push edx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x526a8c
mov eax, dword [esp + 0x40]
push ebx
push eax
lea ecx, [esi + 0x258]
call fcn.0048f820
mov ecx, eax
call fcn.0048f600
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.0048ea80
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
cmp dword [eax], 0
je 0x526a4a
mov edx, dword [esp + 0x40]
push ebp
push edi
push ebx
push edx
mov ecx, esi
call fcn.00527cb0
jmp 0x526a8c
mov ebx, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1b04]
lea eax, [ebx - 0x2a]
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
sub ecx, edx
dec ecx
imul ecx, ebx
imul ebx, dword [esp + 0x40]
add ecx, eax
add ebx, eax
mov eax, edi
add ebx, eax
mov eax, ebp
add ecx, eax
mov eax, dword [esp + 0x40]
push ecx
push ebx
push edx
push eax
mov ecx, esi
call fcn.00527cb0
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x1b04]
inc ebx
cmp ebx, eax
mov dword [esp + 0x14], ebx
jl 0x5269e4
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x5269d0
mov ecx, dword [esi + 0x1bf0]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1bf0]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x526c52
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x526c52
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x30], 0
jle 0x526d3a
jmp 0x526b10
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x24], 0
jle 0x526c36
or ecx, 0xffffffff
mov dword [esp + 0xa0], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x48], ecx
jmp 0x526b50
mov eax, dword [esi + 0xf4]
mov ebx, dword [esi + 0x1b04]
imul ecx, eax
imul ebx, eax
mov edx, eax
imul edx, dword [esp + 0x30]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc0], ebx
mov ebx, edi
add eax, ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc8], eax
mov eax, ebp
add eax, ebx
mov ebx, dword [esp + 0xc8]
add edx, ebx
mov ebx, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x30]
push ebx
mov dword [esp + 0x7c], ecx
push eax
lea ecx, [esi + 0x1c00]
mov dword [esp + 0x7c], edx
call fcn.0048f4e0
mov ecx, eax
call fcn.0048f570
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx]
fnstsw ax
test ah, 5
jnp 0x526bd5
lea ecx, [esp + 0x1c]
mov eax, ecx
jmp 0x526bec
fld dword [ecx]
fcomp dword [0x6532d8]
fnstsw ax
test ah, 5
jp 0x526be8
mov eax, ecx
jmp 0x526bec
lea eax, [esp + 0x64]
mov ecx, dword [eax]
push ecx
mov ecx, 0x6c3c60
call fcn.00443d70
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x30]
push edx
push eax
push ebx
push ecx
mov ecx, esi
call fcn.00527ff0
mov ecx, 0x6c3c60
call fcn.004419c0
mov ecx, dword [esp + 0x48]
mov eax, dword [esi + 0x1b04]
inc ebx
dec ecx
cmp ebx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ecx
jl 0x526b50
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x526b10
jmp 0x526d3a
mov al, byte [esi + 0x1f0c]
test al, al
je 0x526d3a
mov eax, dword [esi + 0x1b00]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x526d3a
jmp 0x526c80
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x24], 0
jle 0x526d23
or ecx, 0xffffffff
mov dword [esp + 0xa0], 0
mov dword [esp + 0x48], ecx
jmp 0x526cb0
mov eax, dword [esi + 0xf4]
mov ebx, dword [esi + 0x1b04]
imul ecx, eax
imul ebx, eax
mov edx, eax
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc0], ebx
mov ebx, edi
add ebx, eax
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xc0]
mov eax, ebp
add eax, ebx
mov ebx, dword [esp + 0xc8]
add eax, ecx
add edx, ebx
mov ebx, dword [esp + 0x24]
push eax
push edx
mov edx, dword [esp + 0x1c]
push ebx
push edx
mov ecx, esi
call fcn.00527ff0
mov ecx, dword [esp + 0x48]
mov eax, dword [esi + 0x1b04]
inc ebx
dec ecx
cmp ebx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ecx
jl 0x526cb0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x526c80
mov eax, dword [esi + 0x1be4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x1be4]
test eax, eax
lea ecx, [ecx + esi + 0x1be4]
je 0x526d65
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
jne 0x526e98
fld dword [esi + 0x1b24]
fcomp dword [esi + 0xbc]
fnstsw ax
test ah, 1
je 0x526d8b
fld dword [esi + 0x1b24]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 5
jp 0x526da8
mov eax, dword [esi + 0x1ba8]
test eax, eax
jle 0x526da8
mov eax, dword [esi + 0x1bd8]
test eax, eax
je 0x526da8
push ebp
push edi
mov ecx, esi
call fcn.00529370
lea ecx, [esi + 0x118]
call fcn.00415590
lea edx, [esp + 0x14]
lea edi, [esi + 0x12c]
push edx
mov ecx, edi
call fcn.0048a6e0
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
push eax
mov dword [esp + 0x24], edi
call fcn.00446b90
lea ecx, [esp + 0x18]
call fcn.005b1810
test al, al
lea ecx, [esp + 0x14]
je 0x526e22
call fcn.00489410
cmp dword [eax], 1
jne 0x526e10
lea ecx, [esp + 0x14]
call fcn.00489410
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
add eax, 4
add ecx, eax
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
push 0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x1c]
call fcn.00527060
jmp 0x526dc5
lea edi, [esi + 0x12c]
push ecx
mov ecx, edi
call fcn.0048a6e0
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
push edx
mov dword [esp + 0x24], edi
call fcn.00446b90
lea ecx, [esp + 0x18]
call fcn.005b1810
test al, al
je 0x526e8d
lea ecx, [esp + 0x14]
call fcn.00489410
cmp dword [eax], 2
jne 0x526e7b
lea ecx, [esp + 0x14]
call fcn.00489410
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 4]
add eax, 4
add ecx, eax
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
push 0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x1c]
call fcn.00527060
jmp 0x526e30
lea ecx, [esi + 0x120]
call fcn.00415590
mov ecx, dword [esi + 0x1bcc]
mov edx, dword [ecx + 4]
lea ecx, [edx + esi + 0x1bcc]
call fcn.004f2a00
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esi + 0x1be4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi + 0x1be4]
test eax, eax
lea ecx, [ecx + esi + 0x1be4]
je 0x526ef7
call fcn.0048ea80
mov cl, byte [eax + 0x60]
test cl, cl
je 0x526ef7
mov edx, dword [esi + 0x1be4]
mov eax, dword [edx + 4]
lea ecx, [eax + esi + 0x1be4]
call fcn.0048ea80
mov ecx, eax
call fcn.005274f0
mov al, byte [esp + 0x53]
test al, al
jne 0x526f51
mov al, byte [esi + 0x1b28]
test al, al
je 0x526f51
push 0
push 0xffffffffffffff9b
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x3c], esp
mov dword [eax], ecx
mov dword [esp + 0x3c], ecx
mov dword [ecx + 0x14], eax
push 0x661efd
push 0x661ef4
mov dword [esp + 0x19c], 0x31
call fcn.00403b50
mov ecx, 0x16c7860
mov dword [esp + 0x194], 0xffffffff
call fcn.0046b8b0
mov ecx, dword [esi + 0x1fd4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + esi + 0x1fd4]
test ecx, ecx
lea eax, [edx + esi + 0x1fd4]
je 0x52704a
push 0
mov ecx, 0x6c3c60
call fcn.00401610
mov eax, dword [esi + 0x1fd4]
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi + 0x1fd4]
call fcn.0048ea80
fld dword [0x654e5c]
mov ecx, eax
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x41
jp 0x526fce
fld dword [ecx + 0x10]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x41
jp 0x526fce
fld dword [ecx + 0xc]
fcomp dword [0x654e5c]
fnstsw ax
test ah, 0x41
jne 0x526fce
fld dword [ecx + 0x10]
fdiv dword [ecx + 0xc]
fsubr dword [0x6532d8]
jmp 0x526fd4
fld dword [0x6532d8]
fmul dword [0x661ef0]
fcom dword [0x654e5c]
fnstsw ax
test ah, 1
jne 0x526fef
fadd dword [0x6532dc]
jmp 0x526ff5
fsub dword [0x6532dc]
call fcn.00611c14
mov byte [esp + 0x17], al
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x16], 0
mov edx, dword [esp + 0x14]
push edx
mov ecx, 0x6c3c60
call fcn.0040da50
push 0x258
push 0x320
push 0
push 0
mov ecx, 0x6c3c60
call fcn.00401720
mov ecx, 0x6c3c60
call fcn.00406f00
push 1
mov ecx, 0x6c3c60
call fcn.00401610
mov ecx, dword [esp + 0x16c]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret