Function at 0x410482
Capabilities:
Inspect section memory permissions

Disassembly:
push 0x7d0
mov eax, 0x43f519
call fcn.0041ef4d
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x104], ebx
fldz
fcom dword [ebp + 0x24]
fnstsw ax
test ah, 0x41
je 0x4119c3
fld1
fcom dword [ebp + 0x24]
fnstsw ax
test ah, 5
jnp 0x4119c1
fxch st(1)
fcom dword [ebp + 0x28]
fnstsw ax
test ah, 0x41
je 0x4119bd
fxch st(1)
fcom dword [ebp + 0x28]
fnstsw ax
test ah, 5
jnp 0x4119c1
fxch st(1)
fcom dword [ebp + 0x2c]
fnstsw ax
test ah, 0x41
je 0x4119bd
fxch st(1)
fcom dword [ebp + 0x2c]
fnstsw ax
test ah, 5
jnp 0x4119c1
fxch st(1)
fcomp dword [ebp + 0x30]
fnstsw ax
test ah, 0x41
je 0x4119c3
fcomp dword [ebp + 0x30]
fnstsw ax
test ah, 5
jnp 0x4119c5
mov edx, dword [ebp + 0xc]
cmp edx, ebx
je 0x41199a
mov ecx, dword [ebp + 0x10]
cmp ecx, ebx
je 0x41199a
cmp dword [ebp + 0x14], ebx
je 0x41199a
cmp dword [ebp + 0x18], ebx
je 0x41199a
cmp edx, ebx
jl 0x40c265
mov dword [ebp + 0xc], edx
jmp 0x40c273
mov eax, dword [esi]
imul eax, edx
push 0xffffffffffffff9c
cdq
pop edi
idiv edi
mov dword [ebp + 0xc], eax
xor edi, edi
inc edi
mov dword [ebp + 0x10], edi
lea eax, [ebp + 0xc]
cmp dword [ebp + 0xc], edi
ja 0x40c284
lea eax, [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp + 0xc], eax
cmp ecx, ebx
jl 0x40c292
mov dword [ebp + 0x10], ecx
jmp 0x40c2a1
mov eax, dword [esi + 4]
imul eax, ecx
push 0xffffffffffffff9c
cdq
pop ecx
idiv ecx
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x20], edi
lea eax, [ebp + 0x10]
cmp dword [ebp + 0x10], edi
ja 0x40c2af
lea eax, [ebp - 0x20]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
cmp ecx, ebx
jl 0x40c2c0
mov dword [ebp + 0x14], ecx
jmp 0x40c2cf
mov eax, dword [esi + 8]
imul eax, ecx
push 0xffffffffffffff9c
cdq
pop ecx
idiv ecx
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x20], edi
lea eax, [ebp + 0x14]
cmp dword [ebp + 0x14], edi
ja 0x40c2dd
lea eax, [ebp - 0x20]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax]
mov dword [ebp + 0x14], eax
cmp ecx, ebx
jl 0x40c2ee
mov dword [ebp + 0x18], ecx
jmp 0x40c2fd
mov eax, dword [esi + 0xc]
imul eax, ecx
push 0xffffffffffffff9c
cdq
pop ecx
idiv ecx
mov dword [ebp + 0x18], eax
mov dword [ebp - 0x20], edi
lea eax, [ebp + 0x18]
cmp dword [ebp + 0x18], edi
ja 0x40c30b
lea eax, [ebp - 0x20]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp + 0x18], eax
cmp ecx, dword [esi]
jne 0x40c347
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [esi + 4]
jne 0x40c347
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [esi + 8]
jne 0x40c347
cmp eax, dword [esi + 0xc]
jne 0x40c347
push dword [ebp + 8]
mov ecx, esi
call fcn.00408ae5
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 8]
call fcn.0041f025
ret 0x2c
mov ecx, esi
call fcn.004049a0
test al, al
je 0x40c36f
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0x23]
push eax
push dword [ebp + 0x18]
mov byte [ebp + 0x23], bl
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407b0d
jmp 0x40c336
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
mov byte [ebp - 0xb0], bl
mov dword [ebp - 0xac], ebx
mov dword [ebp - 4], edi
mov ecx, dword [ebp + 0x1c]
lea eax, [ecx + 1]
cmp eax, 7
ja case.default.0x40c3a5
jmp dword [eax*4 + 0x411a22]
mov ecx, dword [ebp + 0x18]
imul ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0xc]
imul ecx, dword [ebp + 0x10]
imul eax, dword [esi + 8]
imul ecx, dword [ebp + 0xc]
imul eax, dword [esi + 4]
imul eax, dword [esi]
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x2c], eax
mov byte [ebp + 0x23], bl
lea edi, [ebp + 0x30]
cmp ecx, eax
jb 0x40c3dc
lea edi, [ebp + 0x2c]
lea eax, [ebp + 0x23]
push eax
push dword [ebp + 0x18]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
push dword [edi]
push dword [esi + 0x14]
push dword [eax + 0x14]
call fcn.00420be0
add esp, 0xc
jmp 0x40d8c1
mov ecx, dword [ebp + 0xc]
sub ecx, dword [esi]
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
fmul dword [ebp + 0x24]
call fcn.0041ff20
mov ecx, dword [ebp + 0x10]
sub ecx, dword [esi + 4]
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
fmul dword [ebp + 0x28]
call fcn.0041ff20
mov ecx, dword [ebp + 0x14]
sub ecx, dword [esi + 8]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
fmul dword [ebp + 0x2c]
call fcn.0041ff20
mov ecx, dword [ebp + 0x18]
sub ecx, dword [esi + 0xc]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
fmul dword [ebp + 0x30]
call fcn.0041ff20
mov edi, eax
mov eax, dword [ebp + 0x20]
dec eax
je 0x40c74d
dec eax
je 0x40c689
dec eax
je 0x40c4c3
fld1
push ecx
fstp dword [esp]
lea eax, [ebp + 0x23]
push esi
push edi
push dword [ebp + 0x2c]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x28]
mov byte [ebp + 0x23], bl
push dword [ebp + 0x24]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
mov ecx, eax
call fcn.0040ab11
jmp 0x40d8c1
push dword [ebp + 0x18]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
mov eax, dword [esi]
add eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [esi + 4]
add eax, eax
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 8]
add eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xc]
add eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x14], ebx
cmp dword [ebp - 0xb4], ebx
jle 0x40d8c1
neg edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0xb8], ebx
jle 0x40c66f
mov eax, dword [ebp + 0x2c]
neg eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0xbc], ebx
jle 0x40c659
mov eax, dword [ebp + 0x28]
neg eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0xc0], ebx
jle 0x40c641
mov eax, dword [ebp + 0x24]
neg eax
mov dword [ebp - 0x20], eax
push dword [ebp - 0xa4]
push eax
call fcn.00403dc1
push dword [ebp - 0x9c]
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
call fcn.00403dc1
push dword [ebp - 0x28]
mov dword [ebp + 0x18], eax
push dword [ebp + 0x10]
call fcn.00403dc1
push dword [ebp - 0x1c]
mov edi, eax
push dword [ebp + 0x1c]
call fcn.00403dc1
add esp, 0x20
cmp eax, dword [esi + 0xc]
jge 0x40c59c
mov ecx, eax
jmp 0x40c5a2
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
dec ecx
cmp edi, dword [esi + 8]
jge 0x40c5af
mov dword [ebp - 0x94], edi
jmp 0x40c5bb
mov eax, dword [ebp - 0x28]
sub eax, edi
dec eax
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 4]
jge 0x40c5c7
mov edx, eax
jmp 0x40c5d1
mov edx, dword [ebp - 0x9c]
sub edx, dword [ebp + 0x18]
dec edx
mov edi, dword [ebp - 0x14]
cmp edi, dword [esi]
jge 0x40c5dc
mov eax, edi
jmp 0x40c5e5
mov eax, dword [ebp - 0xa4]
sub eax, edi
dec eax
imul ecx, dword [esi + 8]
add ecx, dword [ebp - 0x94]
imul ecx, dword [esi + 4]
add ecx, edx
mov edx, dword [ebp - 0xb8]
imul ecx, dword [esi]
imul edx, dword [ebp + 0x14]
add edx, dword [ebp + 0x30]
add ecx, eax
imul edx, dword [ebp - 0xbc]
add edx, dword [ebp + 0x20]
mov eax, dword [esi + 0x14]
imul edx, dword [ebp - 0xc0]
mov al, byte [ecx + eax]
add edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x44]
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x20]
inc ecx
inc eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], eax
cmp ecx, dword [ebp - 0xc0]
jl 0x40c558
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
inc dword [ebp + 0xc]
cmp eax, dword [ebp - 0xbc]
jl 0x40c541
mov eax, dword [ebp + 0x10]
inc dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
inc eax
mov dword [ebp + 0x10], eax
cmp ecx, dword [ebp - 0xb8]
jl 0x40c52a
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
inc dword [ebp + 0x1c]
cmp eax, dword [ebp - 0xb4]
jl 0x40c513
jmp 0x40d8c1
push dword [ebp + 0x18]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
mov eax, dword [ebp + 0x24]
mov ecx, dword [esi]
cdq
idiv ecx
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x14], ecx
sub edx, ecx
mov ecx, dword [esi + 4]
mov dword [ebp + 0x1c], edx
cdq
idiv ecx
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x20], ecx
sub edx, ecx
mov ecx, dword [esi + 8]
mov dword [ebp + 0x24], edx
cdq
idiv ecx
mov eax, edi
mov dword [ebp - 0x44], ecx
sub edx, ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp + 0x28], edx
cdq
idiv ecx
mov dword [ebp - 0x1c], ecx
sub edx, ecx
mov dword [ebp + 0x2c], edx
cmp edx, dword [ebp + 0x18]
jge 0x40d8c1
mov eax, dword [ebp + 0x28]
jmp 0x40c732
mov eax, dword [ebp + 0x24]
jmp 0x40c724
mov edi, dword [ebp + 0x1c]
jmp 0x40c719
fld1
push ecx
fstp dword [esp]
lea ecx, [ebp - 0xc0]
push esi
push dword [ebp + 0x2c]
push dword [ebp + 0x30]
push dword [ebp + 0x20]
push edi
call fcn.0040ab11
add edi, dword [ebp - 0x14]
cmp edi, dword [ebp + 0xc]
jl 0x40c6fa
mov eax, dword [ebp + 0x20]
add eax, dword [ebp - 0x20]
mov dword [ebp + 0x20], eax
cmp eax, dword [ebp + 0x10]
jl 0x40c6f5
mov eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x44]
mov dword [ebp + 0x30], eax
cmp eax, dword [ebp + 0x14]
jl 0x40c6f0
mov eax, dword [ebp + 0x2c]
add eax, dword [ebp - 0x1c]
mov dword [ebp + 0x2c], eax
cmp eax, dword [ebp + 0x18]
jl 0x40c6eb
jmp 0x40d8c1
fld1
push ecx
fstp dword [esp]
lea ecx, [ebp - 0xc0]
push esi
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
mov ecx, eax
call fcn.0040ab11
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], bl
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 2
cmp dword [ebp + 0x24], ebx
jle 0x40c82b
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ebx
lea eax, [eax + edi - 1]
push eax
mov eax, dword [ebp + 0x2c]
lea ecx, [ecx + eax - 1]
push ecx
mov ecx, dword [ebp + 0x28]
lea edx, [edx + ecx - 1]
push edx
push dword [ebp + 0x24]
push edi
push eax
push ecx
push dword [ebp + 0x24]
lea eax, [ebp - 0x3a4]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x394], bl
jne 0x40c7fc
push dword [ebp - 0x390]
call fcn.0041f057
pop ecx
mov eax, dword [ebp + 0x24]
dec eax
mov dword [ebp + 0x20], eax
cmp eax, ebx
jl 0x40c82b
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x2c]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x28]
push dword [ebp + 0x20]
call fcn.0040ab11
dec dword [ebp + 0x20]
jns 0x40c807
mov eax, dword [esi]
mov ecx, dword [ebp + 0x24]
add ecx, eax
cmp ecx, dword [ebp + 0xc]
jge 0x40c8dd
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ebx
lea ecx, [ecx + edi - 1]
push ecx
mov ecx, dword [ebp + 0x2c]
lea ecx, [edx + ecx - 1]
mov edx, dword [ebp + 0x28]
push ecx
mov ecx, dword [esi + 4]
lea ecx, [ecx + edx - 1]
push ecx
mov ecx, dword [ebp + 0x24]
lea edx, [eax + ecx - 1]
push edx
push edi
push dword [ebp + 0x2c]
lea eax, [eax + ecx - 1]
push dword [ebp + 0x28]
lea ecx, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x164]
push eax
call fcn.0040b825
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x154], bl
jne 0x40c8a7
push dword [ebp - 0x150]
call fcn.0041f057
pop ecx
mov eax, dword [esi]
mov ecx, dword [ebp + 0x24]
add eax, ecx
mov dword [ebp + 0x20], eax
jmp 0x40c8d8
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x2c]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x28]
push dword [ebp + 0x20]
call fcn.0040ab11
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0xc]
jl 0x40c8b3
cmp dword [ebp + 0x28], ebx
jle 0x40c96e
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push ebx
lea eax, [eax + edi - 1]
push eax
mov eax, dword [ebp + 0x2c]
lea ecx, [ecx + eax - 1]
push ecx
push dword [ebp + 0x28]
mov ecx, dword [ebp + 0xc]
dec ecx
push ecx
push edi
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x644]
push ebx
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x634], bl
jne 0x40c941
push dword [ebp - 0x630]
call fcn.0041f057
pop ecx
mov eax, dword [ebp + 0x28]
dec eax
mov dword [ebp + 0x20], eax
cmp eax, ebx
jl 0x40c96e
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x2c]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x20]
push ebx
call fcn.0040ab11
dec dword [ebp + 0x20]
jns 0x40c94c
mov eax, dword [esi + 4]
add eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x10]
jge 0x40ca19
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push ebx
lea ecx, [ecx + edi - 1]
push ecx
mov ecx, dword [ebp + 0x2c]
lea ecx, [edx + ecx - 1]
mov edx, dword [ebp + 0x28]
push ecx
lea ecx, [eax + edx - 1]
push ecx
mov ecx, dword [ebp + 0xc]
dec ecx
push ecx
push edi
push dword [ebp + 0x2c]
lea eax, [eax + edx - 1]
push eax
push ebx
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x184], bl
jne 0x40c9e4
push dword [ebp - 0x180]
call fcn.0041f057
pop ecx
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x28]
add eax, ecx
mov dword [ebp + 0x20], eax
jmp 0x40ca14
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x2c]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x20]
push ebx
call fcn.0040ab11
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0x10]
jl 0x40c9f1
cmp dword [ebp + 0x2c], ebx
jle 0x40caa2
mov eax, dword [esi + 0xc]
push ebx
lea eax, [eax + edi - 1]
push eax
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x10]
dec eax
push eax
mov eax, dword [ebp + 0xc]
dec eax
push eax
push edi
push dword [ebp + 0x2c]
lea eax, [ebp - 0x4c4]
push ebx
push ebx
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x4b4], bl
jne 0x40ca77
push dword [ebp - 0x4b0]
call fcn.0041f057
pop ecx
mov eax, dword [ebp + 0x2c]
dec eax
mov dword [ebp + 0x20], eax
cmp eax, ebx
jl 0x40caa2
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x20]
lea ecx, [ebp - 0xc0]
push ebx
push ebx
call fcn.0040ab11
dec dword [ebp + 0x20]
jns 0x40ca82
mov eax, dword [esi + 8]
add eax, dword [ebp + 0x2c]
cmp eax, dword [ebp + 0x14]
jge 0x40cb43
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push ebx
lea ecx, [ecx + edi - 1]
push ecx
mov ecx, dword [ebp + 0x2c]
lea edx, [eax + ecx - 1]
push edx
mov edx, dword [ebp + 0x10]
dec edx
push edx
mov edx, dword [ebp + 0xc]
dec edx
push edx
push edi
lea eax, [eax + ecx - 1]
push eax
push ebx
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x1b4], bl
jne 0x40cb10
push dword [ebp - 0x1b0]
call fcn.0041f057
pop ecx
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 0x2c]
add eax, ecx
mov dword [ebp + 0x20], eax
jmp 0x40cb3e
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push edi
push dword [ebp + 0x20]
lea ecx, [ebp - 0xc0]
push ebx
push ebx
call fcn.0040ab11
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0x14]
jl 0x40cb1d
cmp edi, ebx
jle 0x40cbbf
mov eax, dword [ebp + 0x14]
push ebx
push edi
dec eax
push eax
mov eax, dword [ebp + 0x10]
dec eax
push eax
mov eax, dword [ebp + 0xc]
dec eax
push eax
push edi
push ebx
push ebx
push ebx
lea eax, [ebp - 0x7c4]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x7b4], bl
jne 0x40cb95
push dword [ebp - 0x7b0]
call fcn.0041f057
pop ecx
lea eax, [edi - 1]
mov dword [ebp + 0x20], eax
cmp eax, ebx
jl 0x40cbbf
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x20]
lea ecx, [ebp - 0xc0]
push ebx
push ebx
push ebx
call fcn.0040ab11
dec dword [ebp + 0x20]
jns 0x40cb9f
mov eax, dword [esi + 0xc]
add eax, edi
cmp eax, dword [ebp + 0x18]
jge 0x40d8af
mov eax, dword [esi + 0xc]
push ebx
lea ecx, [eax + edi - 1]
push ecx
mov ecx, dword [ebp + 0x14]
dec ecx
push ecx
mov ecx, dword [ebp + 0x10]
dec ecx
push ecx
mov ecx, dword [ebp + 0xc]
dec ecx
push ecx
lea eax, [eax + edi - 1]
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 0x1f4]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040b825
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 2
cmp byte [ebp - 0x1e4], bl
jne 0x40cc26
push dword [ebp - 0x1e0]
call fcn.0041f057
pop ecx
mov esi, dword [esi + 0xc]
add esi, edi
jmp 0x40cc47
fld1
push ecx
fstp dword [esp]
lea eax, [ebp - 0x40]
push eax
push esi
push ebx
push ebx
push ebx
lea ecx, [ebp - 0xc0]
call fcn.0040ab11
inc esi
cmp esi, dword [ebp + 0x18]
jl 0x40cc2d
jmp 0x40d8af
push dword [ebp + 0x18]
lea ecx, [ebp - 0xc0]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
xor edi, edi
inc edi
push edi
push edi
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x60]
call fcn.00407709
mov byte [ebp - 4], 0xb
mov eax, dword [ebp + 0x10]
push edi
push edi
push edi
inc eax
push eax
lea ecx, [ebp - 0x40]
call fcn.00407709
mov byte [ebp - 4], 0xc
mov eax, dword [ebp + 0x14]
push edi
push edi
push edi
inc eax
push eax
lea ecx, [ebp - 0xe0]
call fcn.00407709
mov byte [ebp - 4], 0xd
mov eax, dword [ebp + 0x18]
push edi
push edi
push edi
inc eax
push eax
lea ecx, [ebp - 0x100]
call fcn.00407709
mov byte [ebp - 4], 0xe
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [esi + 8]
mov eax, edx
imul edi, edx
imul eax, ecx
imul edi, ecx
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x10]
imul eax, dword [ebp + 0xc]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x14]
imul eax, dword [ebp + 0x10]
imul eax, dword [ebp + 0xc]
mov dword [ebp + 0x24], edi
mov dword [ebp - 0x94], eax
cmp dword [ebp + 0xc], ecx
jne 0x40cd0d
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0x60]
mov dword [ebp + 0x20], 1
call fcn.00405e00
jmp 0x40cd49
mov eax, dword [ebp - 0x4c]
mov dword [ebp + 0x20], eax
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0xc0], ebx
jle 0x40cd49
inc ecx
mov dword [ebp + 0x2c], eax
mov eax, dword [esi]
imul eax, ecx
xor edx, edx
div dword [ebp + 0xc]
mov edx, dword [ebp + 0x20]
add dword [ebp + 0x20], 4
mov dword [ebp + 0x28], ecx
mov ecx, eax
sub ecx, dword [ebp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [ebp + 0x28]
cmp ecx, dword [ebp - 0xc0]
jl 0x40cd1f
mov eax, dword [ebp + 0x10]
cmp eax, dword [esi + 4]
jne 0x40cd5c
push esi
lea ecx, [ebp - 0x40]
call fcn.00405e00
jmp 0x40cda4
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x20], eax
cmp dword [ebp - 0xbc], ebx
jle 0x40cda2
mov eax, dword [esi + 4]
mov dword [ebp + 0x2c], ecx
lea ecx, [edx + 1]
imul eax, ecx
xor edx, edx
div dword [ebp + 0x10]
mov dword [ebp + 0x28], ecx
mov ecx, eax
mov eax, dword [ebp + 0x20]
mov edx, ecx
sub edx, dword [ebp + 0x2c]
imul edx, dword [esi]
mov dword [eax], edx
mov edx, dword [ebp + 0x28]
add eax, 4
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp - 0xbc]
jl 0x40cd6e
mov dword [eax], ebx
mov eax, dword [ebp + 0x14]
cmp eax, dword [esi + 8]
jne 0x40cdbd
lea eax, [ebp + 0x30]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00405e00
jmp 0x40ce09
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x20], eax
cmp dword [ebp - 0xb8], ebx
jle 0x40ce07
mov eax, dword [esi + 8]
mov dword [ebp + 0x2c], ecx
lea ecx, [edx + 1]
imul eax, ecx
xor edx, edx
div dword [ebp + 0x14]
mov dword [ebp + 0x28], ecx
mov ecx, eax
mov eax, dword [ebp + 0x20]
mov edx, ecx
sub edx, dword [ebp + 0x2c]
imul edx, dword [ebp + 0x30]
mov dword [eax], edx
mov edx, dword [ebp + 0x28]
add eax, 4
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp - 0xb8]
jl 0x40cdd2
mov dword [eax], ebx
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 0xc]
jne 0x40ce22
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp - 0x100]
call fcn.00405e00
jmp 0x40ce6d
mov eax, dword [ebp - 0xec]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x20], eax
cmp dword [ebp - 0xb4], ebx
jle 0x40ce6b
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x30], ecx
lea ecx, [edx + 1]
imul eax, ecx
xor edx, edx
div dword [ebp + 0x18]
mov dword [ebp + 0x2c], ecx
mov ecx, eax
mov eax, dword [ebp + 0x20]
mov edx, ecx
sub edx, dword [ebp + 0x30]
imul edx, edi
mov dword [eax], edx
mov edx, dword [ebp + 0x2c]
add eax, 4
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp - 0xb4]
jl 0x40ce37
mov dword [eax], ebx
mov eax, dword [esi + 0x14]
mov edi, dword [ebp - 0xac]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp + 0x18], ebx
jbe 0x40cff9
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], ebx
cmp dword [ebp + 0x14], ebx
jbe 0x40cfa1
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x9c], eax
mov dword [ebp + 0x20], ebx
cmp dword [ebp + 0x10], ebx
jbe 0x40cf55
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0xa4], ebx
cmp dword [ebp - 0xc0], ebx
jle 0x40cefe
jmp 0x40cedd
mov ecx, dword [ebp - 0x14]
mov dl, byte [eax]
mov byte [edi], dl
add eax, dword [ecx]
add ecx, 4
inc edi
inc dword [ebp - 0xa4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 0xc0]
jl 0x40ceda
mov eax, dword [esi]
inc dword [ebp + 0x20]
add esi, 4
cmp eax, ebx
jne 0x40cf43
mov ecx, edi
sub ecx, dword [ebp + 0xc]
mov dword [ebp - 0xa4], ecx
cmp dword [ebp + 0x20], eax
jae 0x40cf43
push dword [ebp + 0xc]
push dword [ebp - 0xa4]
push edi
call fcn.00420be0
mov eax, dword [ebp + 0xc]
add dword [ebp - 0xa4], eax
add edi, eax
mov eax, dword [esi]
add esp, 0xc
inc dword [ebp + 0x20]
add esi, 4
cmp eax, ebx
je 0x40cf15
add dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0x10]
jb 0x40cec1
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
inc dword [ebp + 0x2c]
add dword [ebp + 0x30], 4
cmp eax, ebx
jne 0x40cf92
mov esi, edi
sub esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x2c], eax
jae 0x40cf92
push dword [ebp + 0x1c]
push esi
push edi
call fcn.00420be0
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
add edi, dword [ebp + 0x1c]
add esi, dword [ebp + 0x1c]
add dword [ebp + 0x30], 4
add esp, 0xc
inc dword [ebp + 0x2c]
cmp eax, ebx
je 0x40cf6a
add dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x2c], eax
jb 0x40cea9
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
inc dword [ebp + 0x24]
add dword [ebp + 0x28], 4
cmp eax, ebx
jne 0x40cfea
mov esi, edi
sub esi, dword [ebp - 0x94]
cmp dword [ebp + 0x24], eax
jae 0x40cfea
push dword [ebp - 0x94]
push esi
push edi
call fcn.00420be0
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
add edi, dword [ebp - 0x94]
add esi, dword [ebp - 0x94]
add dword [ebp + 0x28], 4
add esp, 0xc
inc dword [ebp + 0x24]
cmp eax, ebx
je 0x40cfb9
add dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp + 0x18]
jb 0x40ce8e
mov byte [ebp - 4], 0xd
cmp byte [ebp - 0xf0], bl
jne 0x40d011
push dword [ebp - 0xec]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0xc
cmp byte [ebp - 0xd0], bl
jne 0x40d029
push dword [ebp - 0xcc]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0xb
cmp byte [ebp - 0x30], bl
jne 0x40d03b
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 1
cmp byte [ebp - 0x50], bl
jne 0x40d8c1
push dword [ebp - 0x4c]
jmp 0x40d8bb
mov eax, dword [esi]
mov byte [ebp + 0x23], 1
cmp dword [ebp + 0xc], eax
je 0x40d22f
fldz
jbe 0x40d0be
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x4f4]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 1
cmp byte [ebp - 0x4e4], bl
jne 0x40d229
push dword [ebp - 0x4e0]
jmp 0x40d223
lea eax, [ebp + 0x20]
fstp dword [ebp + 0x20]
push eax
push dword [esi + 0xc]
lea ecx, [ebp - 0x40]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
call fcn.00407805
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x34], ebx
jle 0x40d1f7
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x28], ebx
cmp eax, ebx
jle 0x40d1e5
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x40d1d6
mov eax, dword [esi]
mov ecx, dword [ebp + 0xc]
mov edx, eax
imul edx, ecx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x1c], ebx
cmp edx, ebx
je 0x40d1c7
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x3c]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x40]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x30], ecx
lea ecx, [ebp + 0x30]
jb 0x40d146
lea ecx, [ebp + 0x20]
mov ecx, dword [ecx]
sub edx, ecx
mov dword [ebp - 0x20], edx
mov edx, dword [esi + 8]
imul edx, dword [ebp + 0x24]
add edx, dword [ebp + 0x28]
mov edi, dword [esi + 0x14]
imul edx, dword [esi + 4]
add edx, dword [ebp + 0x2c]
sub dword [ebp + 0x20], ecx
imul edx, dword [esi]
add edx, dword [ebp + 0x1c]
sub dword [ebp + 0x30], ecx
movzx edx, byte [edx + edi]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
test ecx, ecx
jns 0x40d187
fadd dword [0x47a118]
fmulp st(1)
fadd dword [eax]
fstp dword [eax]
cmp dword [ebp + 0x20], ebx
jne 0x40d1ae
mov ecx, dword [esi]
fld dword [eax]
fild dword [esi]
test ecx, ecx
jns 0x40d1a2
fadd dword [0x47a118]
fdivp st(1)
fstp dword [eax]
mov ecx, dword [esi]
add eax, 4
mov dword [ebp + 0x20], ecx
cmp dword [ebp + 0x30], ebx
jne 0x40d1bc
mov ecx, dword [ebp + 0xc]
inc dword [ebp + 0x1c]
mov dword [ebp + 0x30], ecx
mov edx, dword [ebp - 0x20]
cmp edx, ebx
jne 0x40d138
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x3c]
jl 0x40d106
inc dword [ebp + 0x28]
mov eax, dword [ebp - 0x38]
cmp dword [ebp + 0x28], eax
jl 0x40d0fa
inc dword [ebp + 0x24]
mov ecx, dword [ebp + 0x24]
add dword [ebp - 0x1c], eax
cmp ecx, dword [ebp - 0x34]
jl 0x40d0ef
push dword [ebp - 0x34]
lea ecx, [ebp - 0xc0]
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x2c]
call fcn.004083ea
lea ecx, [ebp - 0x40]
call fcn.00404976
mov byte [ebp - 4], 1
cmp byte [ebp - 0x30], bl
jne 0x40d229
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
xor edi, edi
mov byte [ebp + 0x23], bl
inc edi
mov eax, dword [esi + 4]
cmp dword [ebp + 0x10], eax
je 0x40d45e
fldz
jbe 0x40d29a
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x224]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 1
cmp byte [ebp - 0x214], bl
jne 0x40d458
push dword [ebp - 0x210]
jmp 0x40d452
lea eax, [ebp + 0x30]
fstp dword [ebp + 0x30]
push eax
push dword [esi + 0xc]
lea ecx, [ebp - 0x40]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407805
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 0x34], ebx
jle 0x40d426
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], ebx
cmp eax, ebx
jle 0x40d414
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x40], ebx
jle 0x40d405
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
mov edx, eax
imul edx, ecx
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], ecx
mov dword [ebp - 0x94], ebx
cmp edx, ebx
je 0x40d3f6
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x40]
imul eax, dword [ebp - 0x3c]
add eax, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x30]
cmp dword [ebp + 0x2c], ecx
lea ecx, [ebp + 0x2c]
jb 0x40d326
lea ecx, [ebp + 0x30]
mov ecx, dword [ecx]
sub dword [ebp + 0x30], ecx
sub dword [ebp + 0x2c], ecx
sub edx, ecx
mov dword [ebp - 0x20], edx
cmp byte [ebp + 0x23], bl
je 0x40d367
mov edx, dword [esi + 8]
imul edx, dword [ebp + 0x1c]
add edx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
imul edx, dword [esi + 4]
add edx, dword [ebp - 0x94]
imul edx, dword [esi]
add edx, dword [esi + 0x14]
movzx edx, byte [edx + edi]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x40d3a1
mov edx, dword [ebp + 0x1c]
imul edx, dword [ebp - 0xb8]
add edx, dword [ebp + 0x24]
mov edi, dword [ebp - 0xac]
imul edx, dword [ebp - 0xbc]
add edx, dword [ebp - 0x94]
imul edx, dword [ebp - 0xc0]
add edx, dword [ebp + 0x28]
movzx edx, byte [edx + edi]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
test ecx, ecx
jns 0x40d3ab
fadd dword [0x47a118]
fmulp st(1)
fadd dword [eax]
fstp dword [eax]
cmp dword [ebp + 0x30], ebx
jne 0x40d3da
mov ecx, dword [esi + 4]
fld dword [eax]
fild dword [esi + 4]
test ecx, ecx
jns 0x40d3c8
fadd dword [0x47a118]
fdivp st(1)
mov ecx, dword [ebp - 0x40]
shl ecx, 2
fstp dword [eax]
add eax, ecx
mov ecx, dword [esi + 4]
mov dword [ebp + 0x30], ecx
cmp dword [ebp + 0x2c], ebx
jne 0x40d3eb
mov ecx, dword [ebp + 0x10]
inc dword [ebp - 0x94]
mov dword [ebp + 0x2c], ecx
mov edx, dword [ebp - 0x20]
cmp edx, ebx
jne 0x40d318
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x40]
jl 0x40d2e2
mov eax, dword [ebp - 0x38]
inc dword [ebp + 0x24]
cmp dword [ebp + 0x24], eax
jl 0x40d2d6
inc dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x1c]
add dword [ebp - 0x1c], eax
cmp ecx, dword [ebp - 0x34]
jl 0x40d2cb
push dword [ebp - 0x34]
lea ecx, [ebp - 0xc0]
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x2c]
call fcn.004083ea
lea ecx, [ebp - 0x40]
call fcn.00404976
mov byte [ebp - 4], 1
cmp byte [ebp - 0x30], bl
jne 0x40d458
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
xor edi, edi
mov byte [ebp + 0x23], bl
inc edi
mov eax, dword [esi + 8]
cmp dword [ebp + 0x14], eax
je 0x40d69e
fldz
jbe 0x40d4c9
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x674]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 1
cmp byte [ebp - 0x664], bl
jne 0x40d698
push dword [ebp - 0x660]
jmp 0x40d692
lea eax, [ebp + 0x30]
fstp dword [ebp + 0x30]
push eax
push dword [esi + 0xc]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407805
mov byte [ebp - 4], 0x14
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 0x34], ebx
jle 0x40d664
mov ecx, dword [ebp - 0x3c]
imul ecx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ecx
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x40d652
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x40], ebx
jle 0x40d643
mov eax, dword [esi + 8]
mov edi, dword [ebp + 0x14]
mov edx, eax
imul edx, edi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], edi
mov dword [ebp - 0x94], ebx
cmp edx, ebx
je 0x40d634
mov eax, dword [ebp - 0x40]
imul eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
shl eax, 2
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x40]
add eax, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x30]
cmp dword [ebp + 0x2c], ecx
lea ecx, [ebp + 0x2c]
jb 0x40d566
lea ecx, [ebp + 0x30]
mov ecx, dword [ecx]
sub dword [ebp + 0x30], ecx
sub dword [ebp + 0x2c], ecx
sub edx, ecx
mov dword [ebp - 0x44], edx
cmp byte [ebp + 0x23], bl
je 0x40d5a7
mov edx, dword [esi + 8]
imul edx, dword [ebp + 0x1c]
add edx, dword [ebp - 0x94]
mov edi, dword [ebp + 0x28]
imul edx, dword [esi + 4]
add edx, dword [ebp + 0x24]
imul edx, dword [esi]
add edx, dword [esi + 0x14]
movzx edx, byte [edx + edi]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x40d5e1
mov edx, dword [ebp + 0x1c]
imul edx, dword [ebp - 0xb8]
add edx, dword [ebp - 0x94]
mov edi, dword [ebp - 0xac]
imul edx, dword [ebp - 0xbc]
add edx, dword [ebp + 0x24]
imul edx, dword [ebp - 0xc0]
add edx, dword [ebp + 0x28]
movzx edx, byte [edx + edi]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
test ecx, ecx
jns 0x40d5eb
fadd dword [0x47a118]
fmulp st(1)
fadd dword [eax]
fstp dword [eax]
cmp dword [ebp + 0x30], ebx
jne 0x40d615
mov ecx, dword [esi + 8]
fld dword [eax]
fild dword [esi + 8]
test ecx, ecx
jns 0x40d608
fadd dword [0x47a118]
fdivp st(1)
fstp dword [eax]
mov ecx, dword [esi + 8]
add eax, dword [ebp - 0x20]
mov dword [ebp + 0x30], ecx
cmp dword [ebp + 0x2c], ebx
jne 0x40d626
mov ecx, dword [ebp + 0x14]
inc dword [ebp - 0x94]
mov dword [ebp + 0x2c], ecx
mov edx, dword [ebp - 0x44]
cmp edx, ebx
jne 0x40d558
mov ecx, dword [ebp - 0x28]
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x40]
jl 0x40d519
inc dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x3c]
jl 0x40d50d
inc dword [ebp + 0x1c]
mov eax, dword [ebp + 0x1c]
add dword [ebp - 0x1c], ecx
cmp eax, dword [ebp - 0x34]
jl 0x40d501
push dword [ebp - 0x34]
lea ecx, [ebp - 0xc0]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x2c]
call fcn.004083ea
lea ecx, [ebp - 0x40]
call fcn.00404976
mov byte [ebp - 4], 1
cmp byte [ebp - 0x30], bl
jne 0x40d698
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
xor edi, edi
mov byte [ebp + 0x23], bl
inc edi
mov eax, dword [esi + 0xc]
cmp dword [ebp + 0x18], eax
je 0x40d8c1
fldz
jbe 0x40d709
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x254]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 1
cmp byte [ebp - 0x244], bl
jne 0x40d8c1
push dword [ebp - 0x240]
jmp 0x40d8bb
lea eax, [ebp + 0x30]
fstp dword [ebp + 0x30]
push eax
push dword [ebp + 0x18]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407805
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
mov dword [ebp + 0x14], ebx
cmp dword [ebp - 0x38], ebx
jle 0x40d891
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x24], ebx
cmp eax, ebx
jle 0x40d87f
mov dword [ebp + 0x28], ebx
cmp ecx, ebx
jle 0x40d870
mov eax, dword [esi + 0xc]
mov edi, dword [ebp + 0x18]
mov edx, eax
imul edx, edi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0xc], ebx
cmp edx, ebx
je 0x40d861
mov eax, ecx
imul eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 0x38]
shl eax, 2
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
imul eax, ecx
add eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp + 0x30]
cmp dword [ebp + 0x2c], ecx
lea ecx, [ebp + 0x2c]
jb 0x40d79f
lea ecx, [ebp + 0x30]
mov ecx, dword [ecx]
sub dword [ebp + 0x30], ecx
sub dword [ebp + 0x2c], ecx
sub edx, ecx
mov dword [ebp - 0x20], edx
cmp byte [ebp + 0x23], bl
je 0x40d7dd
mov edx, dword [esi + 8]
imul edx, dword [ebp + 0xc]
add edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x28]
imul edx, dword [esi + 4]
add edx, dword [ebp + 0x24]
imul edx, dword [esi]
add edx, dword [esi + 0x14]
movzx edx, byte [edx + edi]
mov dword [ebp + 0x1c], edx
fild dword [ebp + 0x1c]
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
jmp 0x40d814
mov edx, dword [ebp + 0xc]
imul edx, dword [ebp - 0xb8]
add edx, dword [ebp + 0x14]
mov edi, dword [ebp - 0xac]
imul edx, dword [ebp - 0xbc]
add edx, dword [ebp + 0x24]
imul edx, dword [ebp - 0xc0]
add edx, dword [ebp + 0x28]
movzx edx, byte [edx + edi]
mov dword [ebp + 0x1c], edx
fild dword [ebp + 0x1c]
mov dword [ebp + 0x1c], ecx
fild dword [ebp + 0x1c]
test ecx, ecx
jns 0x40d81e
fadd dword [0x47a118]
fmulp st(1)
fadd dword [eax]
fstp dword [eax]
cmp dword [ebp + 0x30], ebx
jne 0x40d848
mov ecx, dword [esi + 0xc]
fld dword [eax]
fild dword [esi + 0xc]
test ecx, ecx
jns 0x40d83b
fadd dword [0x47a118]
fdivp st(1)
fstp dword [eax]
mov ecx, dword [esi + 0xc]
add eax, dword [ebp - 0x14]
mov dword [ebp + 0x30], ecx
cmp dword [ebp + 0x2c], ebx
jne 0x40d856
mov ecx, dword [ebp + 0x18]
inc dword [ebp + 0xc]
mov dword [ebp + 0x2c], ecx
mov edx, dword [ebp - 0x20]
cmp edx, ebx
jne 0x40d791
inc dword [ebp + 0x28]
mov ecx, dword [ebp - 0x40]
cmp dword [ebp + 0x28], ecx
jl 0x40d753
mov eax, dword [ebp - 0x3c]
inc dword [ebp + 0x24]
cmp dword [ebp + 0x24], eax
jl 0x40d748
inc dword [ebp + 0x14]
mov edx, dword [ebp + 0x14]
add dword [ebp + 0x10], eax
cmp edx, dword [ebp - 0x38]
jl 0x40d73d
push dword [ebp - 0x34]
push dword [ebp - 0x38]
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xc0]
call fcn.004083ea
lea ecx, [ebp - 0x40]
call fcn.00404976
mov byte [ebp - 4], 1
cmp byte [ebp - 0x30], bl
jne 0x40d8c1
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xc0]
push eax
call fcn.004072df
mov dword [ebp - 0x10], 1
jmp 0x41193e
push edi
push edi
push edi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00404bf1
add esp, 0x10
push eax
lea ecx, [ebp - 0xe0]
call fcn.00407709
mov byte [ebp - 4], 0x17
push edi
push edi
push edi
push dword [ebp - 0xe0]
lea ecx, [ebp - 0x100]
call fcn.0040790b
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], bl
mov dword [ebp - 0x64], ebx
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov byte [ebp - 0x80], bl
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x1b
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], bl
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 0x1c
mov eax, dword [esi]
cmp dword [ebp + 0xc], eax
je 0x40dc4f
cmp eax, edi
jne 0x40d9e9
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x524]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x514], bl
jne 0x40dc65
push dword [ebp - 0x510]
jmp 0x40da44
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
jbe 0x40da4f
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x284]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.0040c19a
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x274], bl
jne 0x40dc65
push dword [ebp - 0x270]
call fcn.0041f057
pop ecx
jmp 0x40dc65
cmp dword [ebp + 0x20], ebx
jne 0x40da7f
cmp ecx, eax
jbe 0x40da7f
cmp ecx, edi
jbe 0x40da7b
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40da6c
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40da97
fldz
jmp 0x40daa1
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40da8f
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40da9f
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x78]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x78], ebx
jle 0x40db4e
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40dae7
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi]
mov dword [ebp + 0x30], eax
fld st(0)
fxch st(1)
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40db22
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x28], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x78]
jl 0x40dad7
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x6c], ebx
jle 0x40dc65
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x70], ebx
jle 0x40dc3b
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x74], ebx
jle 0x40dc2c
mov edi, dword [esi + 8]
imul edi, dword [ebp + 0x28]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi]
imul edi, dword [esi + 4]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x28], ebx
imul edi, eax
add edi, dword [esi + 0x14]
lea eax, [edi + eax - 1]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x70]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x74]
add eax, dword [ebp + 0x30]
imul eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x64]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x78], ebx
jle 0x40dc1d
mov eax, dword [ebp + 0x24]
add dword [ebp + 0x24], 8
fld qword [eax]
mov al, byte [edi]
cmp edi, dword [ebp - 0x14]
jae 0x40dbde
mov cl, byte [edi + 1]
jmp 0x40dbe0
mov cl, al
fld1
movzx eax, al
fsub st(1)
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
movzx eax, cl
mov dword [ebp - 0x20], eax
fmulp st(1)
fild dword [ebp - 0x20]
fmulp st(2)
faddp st(1)
call fcn.0041ff56
mov ecx, dword [ebp + 0x1c]
inc dword [ebp + 0x1c]
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
add edi, dword [eax]
add dword [ebp - 0x1c], 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x78]
jl 0x40dbc9
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x74]
jl 0x40db74
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x70]
jl 0x40db68
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x6c]
jl 0x40db5c
xor edi, edi
inc edi
jmp 0x40dc65
push edi
push dword [esi + 0xc]
lea ecx, [ebp - 0x78]
push dword [esi + 8]
push dword [esi + 4]
push eax
push dword [esi + 0x14]
call fcn.00408b16
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
je 0x40df77
cmp eax, edi
jne 0x40dcd0
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x734]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x78]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x724], bl
jne 0x40df6d
push dword [ebp - 0x720]
jmp 0x40dd2e
cmp eax, ecx
jbe 0x40dd39
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x2b4]
fst dword [esp + 8]
lea ecx, [ebp - 0x78]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x2a4], bl
jne 0x40df6d
push dword [ebp - 0x2a0]
call fcn.0041f057
pop ecx
jmp 0x40df6d
cmp dword [ebp + 0x20], ebx
jne 0x40dd69
cmp ecx, eax
jbe 0x40dd69
cmp ecx, edi
jbe 0x40dd65
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40dd56
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40dd81
fldz
jmp 0x40dd8b
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40dd79
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40dd89
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x90]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x8c], ebx
jle 0x40de45
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40ddd8
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 4]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40de16
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
imul ecx, dword [ebp + 0xc]
mov dword [edi], ecx
add edi, 4
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x8c]
jl 0x40ddc8
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x84], ebx
jle 0x40df6d
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x88], ebx
jle 0x40df5b
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x90], ebx
jle 0x40df49
mov edi, dword [ebp + 0x28]
imul edi, dword [ebp - 0x70]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi + 4]
imul edi, dword [ebp - 0x74]
imul edi, dword [ebp - 0x78]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x1c], ebx
add edi, dword [ebp - 0x64]
dec eax
imul eax, dword [ebp + 0xc]
add eax, edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x90]
imul eax, dword [ebp - 0x8c]
add eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x7c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x8c], ebx
jle 0x40df37
mov eax, dword [ebp + 0x24]
add dword [ebp + 0x24], 8
fld qword [eax]
mov al, byte [edi]
cmp edi, dword [ebp - 0x14]
jae 0x40def2
mov ecx, dword [ebp + 0xc]
mov cl, byte [edi + ecx]
jmp 0x40def4
mov cl, al
fld1
movzx eax, al
fsub st(1)
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
movzx eax, cl
mov dword [ebp - 0x44], eax
fmulp st(1)
fild dword [ebp - 0x44]
fmulp st(2)
faddp st(1)
call fcn.0041ff56
mov ecx, dword [ebp - 0x20]
mov byte [ecx], al
mov eax, dword [ebp + 0x1c]
add ecx, dword [ebp + 0xc]
add edi, dword [eax]
add dword [ebp + 0x1c], 4
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
cmp eax, dword [ebp - 0x8c]
jl 0x40deda
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x90]
jl 0x40de74
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x88]
jl 0x40de65
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x84]
jl 0x40de56
lea ecx, [ebp - 0x78]
call fcn.00404976
jmp 0x40df92
push edi
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp - 0x64]
call fcn.00408b16
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x14]
cmp eax, ecx
je 0x40e298
cmp ecx, 1
jne 0x40dffe
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push dword [esi + 0xc]
lea ecx, [ebp - 0x90]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x554]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x544], bl
jne 0x40e28b
push dword [ebp - 0x540]
jmp 0x40e05a
cmp ecx, eax
jbe 0x40e065
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x90]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x2e4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x2d4], bl
jne 0x40e28b
push dword [ebp - 0x2d0]
call fcn.0041f057
pop ecx
jmp 0x40e28b
cmp dword [ebp + 0x20], ebx
jne 0x40e098
cmp eax, ecx
jbe 0x40e098
cmp eax, 1
jbe 0x40e094
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40e083
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40e0b0
fldz
jmp 0x40e0bc
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40e0a8
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40e0ba
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x10]
fstp qword [ebp - 0x18]
push dword [esi + 0xc]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
push dword [ebp + 0xc]
mov dword [ebp + 0x1c], edi
call fcn.00407d18
mov eax, dword [ebp - 0xcc]
fldz
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x58], ebx
jle 0x40e17b
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40e10e
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 8]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40e14c
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
imul ecx, edi
add dword [ebp + 0x28], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x58]
jl 0x40e0fe
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x54], ebx
jle 0x40e28b
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x5c], ebx
jle 0x40e27c
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x60], ebx
jle 0x40e26d
mov edi, dword [ebp + 0x28]
imul edi, dword [ebp - 0x88]
imul edi, dword [ebp - 0x8c]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi + 8]
imul edi, dword [ebp - 0x90]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x28], ebx
add edi, dword [ebp - 0x7c]
dec eax
imul eax, dword [ebp + 0x1c]
add eax, edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x5c]
imul eax, dword [ebp + 0x28]
imul eax, dword [ebp - 0x58]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x60]
add eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x58], ebx
jle 0x40e25e
mov eax, dword [ebp + 0x24]
add dword [ebp + 0x24], 8
fld qword [eax]
mov al, byte [edi]
cmp edi, dword [ebp - 0x14]
jae 0x40e21c
mov ecx, dword [ebp + 0x1c]
mov cl, byte [edi + ecx]
jmp 0x40e21e
mov cl, al
fld1
movzx eax, al
fsub st(1)
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
movzx eax, cl
mov dword [ebp - 0x44], eax
fmulp st(1)
fild dword [ebp - 0x44]
fmulp st(2)
faddp st(1)
call fcn.0041ff56
mov ecx, dword [ebp - 0x20]
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
add ecx, dword [ebp + 0x1c]
add edi, dword [eax]
add dword [ebp - 0x1c], 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], ecx
cmp eax, dword [ebp - 0x58]
jl 0x40e204
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x60]
jl 0x40e1a1
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x5c]
jl 0x40e195
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x54]
jl 0x40e189
lea ecx, [ebp - 0x90]
call fcn.00404976
jmp 0x40e2bd
push 1
push dword [ebp - 0x84]
lea ecx, [ebp - 0x60]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push dword [ebp - 0x7c]
call fcn.00408b16
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 0x18]
cmp eax, ecx
je 0x40e5ad
cmp ecx, 1
jne 0x40e326
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x6a4]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x694], bl
jne 0x40e5a3
push dword [ebp - 0x690]
jmp 0x40e37f
cmp ecx, eax
jbe 0x40e38a
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x60]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x314]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x1c
cmp byte [ebp - 0x304], bl
jne 0x40e5a3
push dword [ebp - 0x300]
call fcn.0041f057
pop ecx
jmp 0x40e5a3
cmp dword [ebp + 0x20], ebx
jne 0x40e3bd
cmp eax, ecx
jbe 0x40e3bd
cmp eax, 1
jbe 0x40e3b9
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40e3a8
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
jmp 0x40e3d5
fldz
jmp 0x40e3e1
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40e3cd
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40e3df
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x14]
fstp qword [ebp - 0x18]
imul edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x10]
mov dword [ebp + 0x24], edi
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x34], ebx
jle 0x40e4a4
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40e437
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x20]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x20], 8
fstp qword [eax]
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40e475
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x2c]
imul ecx, edi
add dword [ebp + 0x2c], 4
inc dword [ebp + 0x28]
mov dword [eax], ecx
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x34]
jl 0x40e427
fstp st(0)
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x38], ebx
jle 0x40e5a3
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x40e594
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x40], ebx
jle 0x40e585
mov edi, dword [ebp + 0x2c]
imul edi, dword [ebp - 0x5c]
add edi, dword [ebp + 0x30]
mov eax, dword [esi + 0xc]
imul edi, dword [ebp - 0x60]
add edi, dword [ebp + 0x20]
mov dword [ebp + 0x18], ebx
add edi, dword [ebp - 0x4c]
dec eax
imul eax, dword [ebp + 0x24]
add eax, edi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp + 0x2c]
add eax, dword [ebp + 0x30]
imul eax, dword [ebp - 0x40]
add eax, dword [ebp + 0x20]
add eax, dword [ebp - 0x2c]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x28], eax
cmp dword [ebp - 0x34], ebx
jle 0x40e576
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x28], 8
fld qword [eax]
mov al, byte [edi]
cmp edi, dword [ebp + 0x10]
jae 0x40e534
mov ecx, dword [ebp + 0x24]
mov cl, byte [ecx + edi]
jmp 0x40e536
mov cl, al
fld1
movzx eax, al
fsub st(1)
mov dword [ebp + 0x1c], eax
movzx eax, cl
fild dword [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
fmulp st(1)
fild dword [ebp + 0x1c]
fmulp st(2)
faddp st(1)
call fcn.0041ff56
mov ecx, dword [ebp + 0xc]
mov byte [ecx], al
mov eax, dword [ebp + 0x14]
add ecx, dword [ebp + 0x24]
add edi, dword [eax]
add dword [ebp + 0x14], 4
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0xc], ecx
cmp eax, dword [ebp - 0x34]
jl 0x40e51c
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x40]
jl 0x40e4ca
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x3c]
jl 0x40e4be
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x38]
jl 0x40e4b2
lea ecx, [ebp - 0x60]
call fcn.00404976
jmp 0x40e5c6
push 1
push dword [ebp - 0x54]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x4c]
call fcn.00408b16
mov edi, 0x100
cmp byte [ebp - 0x30], bl
je 0x40e6aa
cmp byte [ebp - 0x50], bl
je 0x40e671
cmp byte [ebp - 0x80], bl
je 0x40e638
cmp byte [ebp - 0x68], bl
je 0x40e602
lea eax, [ebp - 0x3d4]
push eax
mov ecx, esi
call fcn.00408ae5
mov byte [ebp - 4], 0x25
mov dword [ebp - 0x10], 2
jmp 0x40e61f
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x6d4]
call fcn.004072df
mov dword [ebp - 4], 0x26
mov dword [ebp - 0x10], 4
push eax
lea ecx, [ebp - 0x134]
call fcn.004072df
mov dword [ebp - 4], 0x27
or dword [ebp - 0x10], 8
jmp 0x40e658
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x5b4]
call fcn.004072df
mov dword [ebp - 4], 0x28
mov dword [ebp - 0x10], 0x10
push eax
lea ecx, [ebp - 0x374]
call fcn.004072df
mov dword [ebp - 4], 0x29
or dword [ebp - 0x10], 0x20
jmp 0x40e68e
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x794]
call fcn.004072df
mov dword [ebp - 4], 0x2a
mov dword [ebp - 0x10], 0x40
push eax
lea ecx, [ebp - 0x344]
call fcn.004072df
mov dword [ebp - 4], 0x2b
or dword [ebp - 0x10], 0x80
jmp 0x40e6c3
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x584]
call fcn.004072df
mov dword [ebp - 4], 0x2c
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp + 8]
push eax
call fcn.004072df
or dword [ebp - 0x10], 1
mov dword [ebp - 4], 0x2b
test dword [ebp - 0x10], edi
je 0x40e6f7
and dword [ebp - 0x10], 0xfffffeff
cmp byte [ebp - 0x574], bl
jne 0x40e6f7
push dword [ebp - 0x570]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x2a
test byte [ebp - 0x10], 0x80
je 0x40e71f
and dword [ebp - 0x10], 0xffffff7f
cmp byte [ebp - 0x334], bl
jne 0x40e71f
push dword [ebp - 0x330]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x29
test byte [ebp - 0x10], 0x40
je 0x40e744
and dword [ebp - 0x10], 0xffffffbf
cmp byte [ebp - 0x784], bl
jne 0x40e744
push dword [ebp - 0x780]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x28
test byte [ebp - 0x10], 0x20
je 0x40e769
and dword [ebp - 0x10], 0xffffffdf
cmp byte [ebp - 0x364], bl
jne 0x40e769
push dword [ebp - 0x360]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x27
test byte [ebp - 0x10], 0x10
je 0x40e78e
and dword [ebp - 0x10], 0xffffffef
cmp byte [ebp - 0x5a4], bl
jne 0x40e78e
push dword [ebp - 0x5a0]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x26
test byte [ebp - 0x10], 8
je 0x40e7b3
and dword [ebp - 0x10], 0xfffffff7
cmp byte [ebp - 0x124], bl
jne 0x40e7b3
push dword [ebp - 0x120]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x25
test byte [ebp - 0x10], 4
je 0x40e7d8
and dword [ebp - 0x10], 0xfffffffb
cmp byte [ebp - 0x6c4], bl
jne 0x40e7d8
push dword [ebp - 0x6c0]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x1c
test byte [ebp - 0x10], 2
je 0x40e7fd
and dword [ebp - 0x10], 0xfffffffd
cmp byte [ebp - 0x3c4], bl
jne 0x40e7fd
push dword [ebp - 0x3c0]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x1b
cmp byte [ebp - 0x30], bl
jne 0x40e80f
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x1a
cmp byte [ebp - 0x50], bl
jne 0x40e821
push dword [ebp - 0x4c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x19
cmp byte [ebp - 0x80], bl
jne 0x40e833
push dword [ebp - 0x7c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x18
cmp byte [ebp - 0x68], bl
jne 0x40e845
push dword [ebp - 0x64]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x17
cmp byte [ebp - 0xf0], bl
jne 0x40e85d
push dword [ebp - 0xec]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 1
cmp byte [ebp - 0xd0], bl
jne 0x40e875
push dword [ebp - 0xcc]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], bl
cmp byte [ebp - 0xb0], bl
jne 0x40c33c
push dword [ebp - 0xac]
call fcn.0041f057
pop ecx
jmp 0x40c33c
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov byte [ebp - 0x80], bl
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], bl
mov dword [ebp - 0x64], ebx
mov byte [ebp - 4], 0x2f
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], bl
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 0x30
mov eax, dword [esi]
cmp dword [ebp + 0xc], eax
je 0x40ea85
jae 0x40e966
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x5e4]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x30
cmp byte [ebp - 0x5d4], bl
jne 0x40ea9b
push dword [ebp - 0x5d0]
call fcn.0041f057
pop ecx
jmp 0x40ea9b
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
lea edi, [ebp + 0x23]
push edi
push eax
push ecx
push edx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x60]
mov byte [ebp + 0x23], bl
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
mov ecx, dword [esi]
lea edi, [ecx + ecx]
mov eax, edi
imul eax, dword [ebp + 0xc]
xor edx, edx
div ecx
mov dword [ebp - 0x20], edi
sub eax, edi
mov dword [ebp + 0x20], eax
fild dword [ebp + 0x20]
jns 0x40e9ad
fadd dword [0x47a118]
fmul dword [ebp + 0x24]
fiadd dword [ebp - 0x20]
call fcn.0041ff20
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0xa4], ebx
cmp dword [ebp - 0x60], ebx
jle 0x40ea80
jmp 0x40e9d8
mov edi, dword [ebp - 0x20]
sub dword [ebp - 0x94], edi
cmp dword [ebp - 0x94], ebx
jg 0x40ea6b
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 0x54], ebx
jle 0x40ea5d
mov dword [ebp + 0x24], ebx
cmp eax, ebx
jle 0x40ea52
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x5c], ebx
jle 0x40ea4a
imul eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 8]
imul ecx, dword [ebp + 0x1c]
add ecx, dword [ebp + 0x24]
add eax, dword [ebp + 0x24]
imul ecx, dword [esi + 4]
imul eax, dword [ebp - 0x5c]
add ecx, dword [ebp + 0x20]
add eax, dword [ebp + 0x20]
imul ecx, dword [esi]
imul eax, dword [ebp - 0x60]
add ecx, dword [ebp - 0x1c]
mov edx, dword [esi + 0x14]
add eax, dword [ebp - 0x4c]
mov cl, byte [ecx + edx]
mov edx, dword [ebp - 0xa4]
inc dword [ebp + 0x20]
mov byte [eax + edx], cl
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
jl 0x40ea01
inc dword [ebp + 0x24]
cmp dword [ebp + 0x24], eax
jl 0x40e9f9
inc dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x1c]
cmp ecx, dword [ebp - 0x54]
jl 0x40e9f2
mov ecx, dword [ebp + 0xc]
inc dword [ebp - 0x1c]
add ecx, ecx
add dword [ebp - 0x94], ecx
inc dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 0x60]
jl 0x40e9d5
xor edi, edi
inc edi
jmp 0x40ea9e
push edi
push dword [esi + 0xc]
lea ecx, [ebp - 0x60]
push dword [esi + 8]
push dword [esi + 4]
push eax
push dword [esi + 0x14]
call fcn.00408b16
mov eax, dword [ebp - 0x58]
mov ecx, dword [esi + 4]
cmp dword [ebp + 0x10], ecx
je 0x40ec3c
jae 0x40eb10
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x404]
fst dword [esp + 8]
lea ecx, [ebp - 0x60]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x30
cmp byte [ebp - 0x3f4], bl
jne 0x40ec32
push dword [ebp - 0x3f0]
call fcn.0041f057
pop ecx
jmp 0x40ec32
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
lea edx, [ebp + 0x23]
push edx
push eax
push ecx
push dword [ebp + 0x10]
lea ecx, [ebp - 0x90]
push dword [ebp + 0xc]
mov byte [ebp + 0x23], bl
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
lea eax, [edx + edx]
mov dword [ebp - 0x14], eax
lea eax, [ecx + ecx]
mov dword [ebp + 0x1c], eax
imul eax, edx
xor edx, edx
div ecx
sub eax, dword [ebp + 0x1c]
mov dword [ebp + 0x20], eax
fild dword [ebp + 0x20]
jns 0x40eb61
fadd dword [0x47a118]
fmul dword [ebp + 0x28]
fiadd dword [ebp + 0x1c]
call fcn.0041ff20
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x8c], ebx
jle 0x40ec32
mov ecx, dword [ebp - 0x88]
jmp 0x40eb89
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp + 0x1c]
mov dword [ebp - 0x28], eax
cmp eax, ebx
jg 0x40ec20
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x84], ebx
jle 0x40ec14
mov dword [ebp + 0x20], ebx
cmp ecx, ebx
jle 0x40ec06
xor edi, edi
cmp dword [ebp - 0x90], ebx
jle 0x40ebfe
imul ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
imul eax, dword [ebp - 0x58]
add eax, dword [ebp + 0x20]
add ecx, dword [ebp + 0x20]
imul eax, dword [ebp - 0x5c]
imul ecx, dword [ebp - 0x8c]
add eax, dword [ebp - 0x1c]
add ecx, dword [ebp + 0x24]
imul eax, dword [ebp - 0x60]
imul ecx, dword [ebp - 0x90]
add eax, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x7c]
mov al, byte [eax + edi]
mov byte [ecx + edi], al
mov ecx, dword [ebp - 0x88]
inc edi
cmp edi, dword [ebp - 0x90]
jl 0x40ebb3
mov eax, dword [ebp - 0x28]
inc dword [ebp + 0x20]
cmp dword [ebp + 0x20], ecx
jl 0x40eba9
inc dword [ebp + 0x28]
mov edx, dword [ebp + 0x28]
cmp edx, dword [ebp - 0x84]
jl 0x40eba2
add eax, dword [ebp - 0x14]
inc dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x28], eax
inc edi
inc dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x8c]
jl 0x40eb86
lea ecx, [ebp - 0x60]
call fcn.00404976
jmp 0x40ec55
push edi
push dword [ebp - 0x54]
lea ecx, [ebp - 0x90]
push eax
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x4c]
call fcn.00408b16
mov eax, dword [esi + 8]
cmp dword [ebp + 0x14], eax
je 0x40edd2
jae 0x40ecc7
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x764]
fst dword [esp + 8]
lea ecx, [ebp - 0x90]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x30
cmp byte [ebp - 0x754], bl
jne 0x40edc5
push dword [ebp - 0x750]
call fcn.0041f057
pop ecx
jmp 0x40edc5
mov eax, dword [esi + 0xc]
lea ecx, [ebp + 0x23]
push ecx
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x78]
push dword [ebp + 0x10]
mov byte [ebp + 0x23], bl
push dword [ebp + 0xc]
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
add eax, eax
mov dword [ebp - 0x20], eax
lea eax, [ecx + ecx]
mov dword [ebp + 0x24], eax
imul eax, dword [ebp + 0x14]
xor edx, edx
div ecx
sub eax, dword [ebp + 0x24]
mov dword [ebp + 0x20], eax
fild dword [ebp + 0x20]
jns 0x40ed14
fadd dword [0x47a118]
fmul dword [ebp + 0x2c]
fiadd dword [ebp + 0x24]
call fcn.0041ff20
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x70], ebx
jle 0x40edc5
sub eax, dword [ebp + 0x24]
mov dword [ebp - 0x14], eax
cmp eax, ebx
jg 0x40edb6
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x6c], ebx
jle 0x40edad
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x74], ebx
jle 0x40eda2
xor ecx, ecx
cmp dword [ebp - 0x78], ebx
jle 0x40ed97
mov eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x88]
mov edx, dword [ebp + 0x2c]
imul edx, dword [ebp - 0x70]
add eax, dword [ebp + 0x1c]
add edx, dword [ebp + 0x28]
imul eax, dword [ebp - 0x8c]
imul edx, dword [ebp - 0x74]
add eax, dword [ebp + 0x20]
add edx, dword [ebp + 0x20]
imul eax, dword [ebp - 0x90]
imul edx, dword [ebp - 0x78]
add eax, dword [ebp - 0x7c]
add edx, dword [ebp - 0x64]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
inc ecx
cmp ecx, dword [ebp - 0x78]
jl 0x40ed4f
mov eax, dword [ebp - 0x14]
inc dword [ebp + 0x20]
mov ecx, dword [ebp + 0x20]
cmp ecx, dword [ebp - 0x74]
jl 0x40ed48
inc dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x2c]
cmp ecx, dword [ebp - 0x6c]
jl 0x40ed40
inc dword [ebp + 0x1c]
add eax, dword [ebp - 0x20]
xor edi, edi
inc edi
inc dword [ebp + 0x28]
mov ecx, dword [ebp + 0x28]
cmp ecx, dword [ebp - 0x70]
jl 0x40ed2e
lea ecx, [ebp - 0x90]
call fcn.00404976
jmp 0x40edf6
push edi
push dword [ebp - 0x84]
lea ecx, [ebp - 0x78]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push dword [ebp - 0x7c]
call fcn.00408b16
mov eax, dword [esi + 0xc]
cmp dword [ebp + 0x18], eax
je 0x40ef6f
jae 0x40ee65
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x434]
fst dword [esp + 8]
lea ecx, [ebp - 0x78]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x30
cmp byte [ebp - 0x424], bl
jne 0x40ef65
push dword [ebp - 0x420]
call fcn.0041f057
pop ecx
jmp 0x40ef65
mov edi, dword [ebp + 0x18]
lea eax, [ebp + 0x23]
push eax
push edi
push dword [ebp + 0x14]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x10]
mov byte [ebp + 0x23], bl
push dword [ebp + 0xc]
call fcn.00407d18
mov ecx, eax
call fcn.00404aee
mov ecx, dword [esi + 0xc]
lea eax, [edi + edi]
mov dword [ebp + 0xc], eax
lea edi, [ecx + ecx]
mov eax, edi
imul eax, dword [ebp + 0x18]
xor edx, edx
div ecx
mov dword [ebp + 0x20], edi
sub eax, edi
mov dword [ebp + 0x2c], eax
fild dword [ebp + 0x2c]
jns 0x40eeb1
fadd dword [0x47a118]
fmul dword [ebp + 0x30]
fiadd dword [ebp + 0x20]
call fcn.0041ff20
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x34], ebx
jle 0x40ef62
mov ecx, dword [ebp - 0x38]
sub dword [ebp + 0x28], edi
cmp dword [ebp + 0x28], ebx
jg 0x40ef53
mov dword [ebp + 0x2c], ebx
cmp ecx, ebx
jle 0x40ef4a
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x40ef42
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x40], ebx
jle 0x40ef37
imul ecx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x14]
imul eax, dword [ebp - 0x70]
add eax, dword [ebp + 0x2c]
add ecx, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x74]
imul ecx, dword [ebp - 0x3c]
add eax, dword [ebp + 0x30]
add ecx, dword [ebp + 0x30]
imul eax, dword [ebp - 0x78]
imul ecx, dword [ebp - 0x40]
add eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x64]
add ecx, dword [ebp + 0x20]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x2c]
inc dword [ebp + 0x20]
mov byte [ecx + edx], al
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x40]
jl 0x40eef0
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x3c]
jl 0x40eee8
inc dword [ebp + 0x2c]
cmp dword [ebp + 0x2c], ecx
jl 0x40eee0
mov eax, dword [ebp + 0xc]
inc dword [ebp + 0x14]
add dword [ebp + 0x28], eax
inc dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jl 0x40eed1
xor edi, edi
inc edi
lea ecx, [ebp - 0x78]
call fcn.00404976
jmp 0x40ef87
push edi
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp - 0x64]
call fcn.00408b16
cmp byte [ebp - 0x30], bl
je 0x40f06c
cmp byte [ebp - 0x68], bl
je 0x40f033
cmp byte [ebp - 0x80], bl
je 0x40eff7
cmp byte [ebp - 0x50], bl
je 0x40efbe
lea eax, [ebp - 0x1dc]
push eax
mov ecx, esi
call fcn.00408ae5
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x10], 0x200
jmp 0x40efdb
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.004072df
mov dword [ebp - 4], 0x36
mov dword [ebp - 0x10], 0x400
push eax
lea ecx, [ebp - 0x17c]
call fcn.004072df
mov dword [ebp - 4], 0x37
or dword [ebp - 0x10], 0x800
jmp 0x40f017
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x14c]
call fcn.004072df
mov dword [ebp - 4], 0x38
mov dword [ebp - 0x10], 0x1000
push eax
lea ecx, [ebp - 0x494]
call fcn.004072df
mov dword [ebp - 4], 0x39
or dword [ebp - 0x10], 0x2000
jmp 0x40f050
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x704]
call fcn.004072df
mov dword [ebp - 4], 0x3a
mov dword [ebp - 0x10], 0x4000
push eax
lea ecx, [ebp - 0x464]
call fcn.004072df
mov dword [ebp - 4], 0x3b
or dword [ebp - 0x10], 0x8000
jmp 0x40f089
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x614]
call fcn.004072df
mov dword [ebp - 4], 0x3c
mov dword [ebp - 0x10], 0x10000
mov ecx, dword [ebp + 8]
push eax
call fcn.004072df
or dword [ebp - 0x10], edi
mov dword [ebp - 4], 0x3b
test dword [ebp - 0x10], 0x10000
je 0x40f0c0
and dword [ebp - 0x10], 0xfffeffff
cmp byte [ebp - 0x604], bl
jne 0x40f0c0
push dword [ebp - 0x600]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x3a
test dword [ebp - 0x10], 0x8000
je 0x40f0eb
and dword [ebp - 0x10], 0xffff7fff
cmp byte [ebp - 0x454], bl
jne 0x40f0eb
push dword [ebp - 0x450]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x39
test dword [ebp - 0x10], 0x4000
je 0x40f116
and dword [ebp - 0x10], 0xffffbfff
cmp byte [ebp - 0x6f4], bl
jne 0x40f116
push dword [ebp - 0x6f0]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x38
test dword [ebp - 0x10], 0x2000
je 0x40f141
and dword [ebp - 0x10], 0xffffdfff
cmp byte [ebp - 0x484], bl
jne 0x40f141
push dword [ebp - 0x480]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x37
test dword [ebp - 0x10], 0x1000
je 0x40f16c
and dword [ebp - 0x10], 0xffffefff
cmp byte [ebp - 0x13c], bl
jne 0x40f16c
push dword [ebp - 0x138]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x36
test dword [ebp - 0x10], 0x800
je 0x40f197
and dword [ebp - 0x10], 0xfffff7ff
cmp byte [ebp - 0x16c], bl
jne 0x40f197
push dword [ebp - 0x168]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x35
test dword [ebp - 0x10], 0x400
je 0x40f1c2
and dword [ebp - 0x10], 0xfffffbff
cmp byte [ebp - 0x19c], bl
jne 0x40f1c2
push dword [ebp - 0x198]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x30
test dword [ebp - 0x10], 0x200
je 0x40f1ed
and dword [ebp - 0x10], 0xfffffdff
cmp byte [ebp - 0x1cc], bl
jne 0x40f1ed
push dword [ebp - 0x1c8]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x2f
cmp byte [ebp - 0x30], bl
jne 0x40f1ff
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x2e
cmp byte [ebp - 0x68], bl
jne 0x40f211
push dword [ebp - 0x64]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x2d
cmp byte [ebp - 0x80], bl
jne 0x40f223
push dword [ebp - 0x7c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 1
cmp byte [ebp - 0x50], bl
jne 0x40e875
push dword [ebp - 0x4c]
jmp 0x40e86f
push edi
push edi
push edi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00404bf1
add esp, 0x10
push eax
lea ecx, [ebp - 0xe0]
call fcn.00407709
mov byte [ebp - 4], 0x3d
push edi
push edi
push edi
push dword [ebp - 0xe0]
lea ecx, [ebp - 0x100]
call fcn.0040790b
mov byte [ebp - 4], 0x3e
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov byte [ebp - 0x80], bl
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 4], 0x3f
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], bl
mov dword [ebp - 0x64], ebx
mov byte [ebp - 4], 0x40
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x41
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], bl
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 0x42
mov eax, dword [esi]
cmp dword [ebp + 0xc], eax
je 0x40f688
cmp eax, edi
jne 0x40f348
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x20c]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x43
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x1fc], bl
jne 0x40f6a1
push dword [ebp - 0x1f8]
jmp 0x40f3a6
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
jbe 0x40f3b1
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x23c]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.0040c19a
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x22c], bl
jne 0x40f6a1
push dword [ebp - 0x228]
call fcn.0041f057
pop ecx
jmp 0x40f6a1
cmp dword [ebp + 0x20], ebx
jne 0x40f3e1
cmp ecx, eax
jbe 0x40f3e1
cmp ecx, edi
jbe 0x40f3dd
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f3ce
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40f3f9
fldz
jmp 0x40f403
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f3f1
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40f401
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x90]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x90], ebx
jle 0x40f4b9
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f44f
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi]
mov dword [ebp + 0x30], eax
fld st(0)
fxch st(1)
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40f48a
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x28], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x90]
jl 0x40f43f
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x84], ebx
jle 0x40f6a1
fld qword [0x47a700]
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x88], ebx
jle 0x40f66f
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x8c], ebx
jle 0x40f65d
mov edi, dword [esi + 8]
imul edi, dword [ebp + 0x28]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi]
imul edi, dword [esi + 4]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x9c], ebx
imul edi, eax
add edi, dword [esi + 0x14]
lea eax, [edi + eax - 2]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
mov dword [ebp - 0x1c], edi
imul eax, dword [ebp - 0x8c]
add eax, dword [ebp + 0x30]
imul eax, dword [ebp - 0x90]
add eax, dword [ebp - 0x7c]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x90], ebx
jle 0x40f64b
mov eax, dword [ebp + 0x24]
fld qword [eax]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
add dword [ebp + 0x24], 8
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
cmp eax, edi
jbe 0x40f57e
movzx ecx, byte [eax - 1]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x40f580
fld st(0)
cmp eax, dword [ebp - 0x20]
ja 0x40f591
movzx ecx, byte [eax + 1]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x40f593
fld st(1)
cmp eax, dword [ebp - 0x20]
jae 0x40f5a7
movzx eax, byte [eax + 2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp qword [ebp - 0x18]
jmp 0x40f5aa
fst qword [ebp - 0x18]
fld st(3)
fmul st(4)
fld st(2)
fadd st(0), st(0)
fld st(4)
fmul qword [0x47a6f8]
fsubp st(1)
fld st(2)
fmul qword [0x47a6f0]
faddp st(1)
fsub qword [ebp - 0x18]
fmul st(1)
fld st(2)
fsub st(4)
fmul st(6)
faddp st(1)
fld st(4)
fmul st(7)
fsubrp st(4)
fxch st(2)
fmul st(6)
fsubp st(3)
fxch st(2)
fadd qword [ebp - 0x18]
fxch st(4)
fmulp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fmul qword [0x479ea0]
faddp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x40f614
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x40f618
fstp st(1)
jmp 0x40f61a
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp + 0x1c]
inc dword [ebp + 0x1c]
mov byte [ecx], al
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
add dword [ebp - 0x1c], eax
add dword [ebp - 0x28], 4
inc dword [ebp - 0x9c]
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x90]
jl 0x40f559
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x8c]
jl 0x40f4ee
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x88]
jl 0x40f4df
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x84]
jl 0x40f4d0
xor edi, edi
fstp st(0)
inc edi
jmp 0x40f6a1
push edi
push dword [esi + 0xc]
lea ecx, [ebp - 0x90]
push dword [esi + 8]
push dword [esi + 4]
push eax
push dword [esi + 0x14]
call fcn.00408b16
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
je 0x40fa3a
cmp eax, edi
jne 0x40f70c
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x26c]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x90]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x25c], bl
jne 0x40fa2d
push dword [ebp - 0x258]
jmp 0x40f76a
cmp eax, ecx
jbe 0x40f775
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x29c]
fst dword [esp + 8]
lea ecx, [ebp - 0x90]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x28c], bl
jne 0x40fa2d
push dword [ebp - 0x288]
call fcn.0041f057
pop ecx
jmp 0x40fa2d
cmp dword [ebp + 0x20], ebx
jne 0x40f7a5
cmp ecx, eax
jbe 0x40f7a5
cmp ecx, edi
jbe 0x40f7a1
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f792
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40f7bd
fldz
jmp 0x40f7c7
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f7b5
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40f7c5
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x78]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x74], ebx
jle 0x40f874
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40f80a
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 4]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40f848
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
imul ecx, dword [ebp + 0xc]
mov dword [edi], ecx
add edi, 4
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x74]
jl 0x40f7fa
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x6c], ebx
jle 0x40fa2d
fld qword [0x47a700]
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x70], ebx
jle 0x40fa1c
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x78], ebx
jle 0x40fa0d
mov edi, dword [ebp + 0x28]
imul edi, dword [ebp - 0x88]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi + 4]
imul edi, dword [ebp - 0x8c]
imul edi, dword [ebp - 0x90]
add edi, dword [ebp + 0x30]
sub eax, 2
imul eax, dword [ebp + 0xc]
add edi, dword [ebp - 0x7c]
mov dword [ebp - 0x28], ebx
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x70]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
mov dword [ebp + 0x1c], edi
imul eax, dword [ebp - 0x78]
imul eax, dword [ebp - 0x74]
add eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x74], ebx
jle 0x40f9fe
mov eax, dword [ebp + 0x24]
fld qword [eax]
mov eax, dword [ebp + 0x1c]
movzx ecx, byte [eax]
add dword [ebp + 0x24], 8
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0xc]
fild dword [ebp - 0x14]
cmp eax, edi
jbe 0x40f937
mov edx, eax
sub edx, ecx
movzx edx, byte [edx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x40f939
fld st(0)
cmp eax, dword [ebp - 0x20]
ja 0x40f94a
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x40f94c
fld st(1)
cmp eax, dword [ebp - 0x20]
jae 0x40f960
movzx eax, byte [eax + ecx*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp qword [ebp - 0x18]
jmp 0x40f963
fst qword [ebp - 0x18]
fld st(3)
fmul st(4)
fld st(2)
fadd st(0), st(0)
fld st(4)
fmul qword [0x47a6f8]
fsubp st(1)
fld st(2)
fmul qword [0x47a6f0]
faddp st(1)
fsub qword [ebp - 0x18]
fmul st(1)
fld st(2)
fsub st(4)
fmul st(6)
faddp st(1)
fld st(4)
fmul st(7)
fsubrp st(4)
fxch st(2)
fmul st(6)
fsubp st(3)
fxch st(2)
fadd qword [ebp - 0x18]
fxch st(4)
fmulp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fmul qword [0x479ea0]
faddp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x40f9cd
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x40f9d1
fstp st(1)
jmp 0x40f9d3
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp - 0x44]
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
add ecx, dword [ebp + 0xc]
add dword [ebp + 0x1c], eax
add dword [ebp - 0x1c], 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], ecx
cmp eax, dword [ebp - 0x74]
jl 0x40f90c
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x78]
jl 0x40f8a0
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x70]
jl 0x40f894
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x6c]
jl 0x40f888
fstp st(0)
lea ecx, [ebp - 0x90]
call fcn.00404976
jmp 0x40fa5e
push edi
push dword [ebp - 0x84]
lea ecx, [ebp - 0x78]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push dword [ebp - 0x7c]
call fcn.00408b16
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x14]
cmp eax, ecx
je 0x40fe04
cmp ecx, 1
jne 0x40fac7
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push dword [esi + 0xc]
lea ecx, [ebp - 0x78]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x2cc]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x2bc], bl
jne 0x40fdfa
push dword [ebp - 0x2b8]
jmp 0x40fb20
cmp ecx, eax
jbe 0x40fb2b
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x78]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x2fc]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x48
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x2ec], bl
jne 0x40fdfa
push dword [ebp - 0x2e8]
call fcn.0041f057
pop ecx
jmp 0x40fdfa
cmp dword [ebp + 0x20], ebx
jne 0x40fb5e
cmp eax, ecx
jbe 0x40fb5e
cmp eax, 1
jbe 0x40fb5a
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40fb49
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x40fb76
fldz
jmp 0x40fb82
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40fb6e
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x40fb80
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x10]
fstp qword [ebp - 0x18]
push dword [esi + 0xc]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
push dword [ebp + 0xc]
mov dword [ebp + 0x24], edi
call fcn.00407d18
mov eax, dword [ebp - 0xcc]
fldz
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 0x58], ebx
jle 0x40fc41
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40fbd4
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 8]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40fc12
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
imul ecx, edi
add dword [ebp + 0x28], 4
inc dword [ebp + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0x58]
jl 0x40fbc4
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x54], ebx
jle 0x40fdfa
fld qword [0x47a700]
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x5c], ebx
jle 0x40fde9
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x60], ebx
jle 0x40fdda
mov edi, dword [ebp + 0x28]
imul edi, dword [ebp - 0x70]
imul edi, dword [ebp - 0x74]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi + 8]
imul edi, dword [ebp - 0x78]
add edi, dword [ebp + 0x30]
sub eax, 2
imul eax, dword [ebp + 0x24]
add edi, dword [ebp - 0x64]
mov dword [ebp - 0x9c], ebx
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x5c]
imul eax, dword [ebp + 0x28]
imul eax, dword [ebp - 0x58]
add eax, dword [ebp + 0x2c]
mov dword [ebp - 0x1c], edi
imul eax, dword [ebp - 0x60]
add eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x1c], eax
cmp dword [ebp - 0x58], ebx
jle 0x40fdcb
mov eax, dword [ebp + 0x1c]
fld qword [eax]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
add dword [ebp + 0x1c], 8
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x24]
fild dword [ebp - 0x14]
cmp eax, edi
jbe 0x40fcfe
mov edx, eax
sub edx, ecx
movzx edx, byte [edx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x40fd00
fld st(0)
cmp eax, dword [ebp - 0x20]
ja 0x40fd11
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x40fd13
fld st(1)
cmp eax, dword [ebp - 0x20]
jae 0x40fd27
movzx eax, byte [eax + ecx*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp qword [ebp - 0x18]
jmp 0x40fd2a
fst qword [ebp - 0x18]
fld st(3)
fmul st(4)
fld st(2)
fadd st(0), st(0)
fld st(4)
fmul qword [0x47a6f8]
fsubp st(1)
fld st(2)
fmul qword [0x47a6f0]
faddp st(1)
fsub qword [ebp - 0x18]
fmul st(1)
fld st(2)
fsub st(4)
fmul st(6)
faddp st(1)
fld st(4)
fmul st(7)
fsubrp st(4)
fxch st(2)
fmul st(6)
fsubp st(3)
fxch st(2)
fadd qword [ebp - 0x18]
fxch st(4)
fmulp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fmul qword [0x479ea0]
faddp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x40fd94
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x40fd98
fstp st(1)
jmp 0x40fd9a
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp - 0x44]
mov byte [ecx], al
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
add ecx, dword [ebp + 0x24]
add dword [ebp - 0x1c], eax
add dword [ebp - 0x28], 4
inc dword [ebp - 0x9c]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x44], ecx
cmp eax, dword [ebp - 0x58]
jl 0x40fcd3
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x60]
jl 0x40fc6d
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x5c]
jl 0x40fc61
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x54]
jl 0x40fc55
fstp st(0)
lea ecx, [ebp - 0x78]
call fcn.00404976
jmp 0x40fe1d
push 1
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x60]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp - 0x64]
call fcn.00408b16
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 0x18]
cmp eax, ecx
je 0x4101b6
cmp ecx, 1
jne 0x40fe86
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x32c]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x31c], bl
jne 0x4101ac
push dword [ebp - 0x318]
jmp 0x40fedf
cmp ecx, eax
jbe 0x40feea
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x60]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x35c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x42
cmp byte [ebp - 0x34c], bl
jne 0x4101ac
push dword [ebp - 0x348]
call fcn.0041f057
pop ecx
jmp 0x4101ac
cmp dword [ebp + 0x20], ebx
jne 0x40ff1d
cmp eax, ecx
jbe 0x40ff1d
cmp eax, 1
jbe 0x40ff19
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40ff08
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
jmp 0x40ff35
fldz
jmp 0x40ff41
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40ff2d
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x40ff3f
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x14]
fstp qword [ebp - 0x18]
imul edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x10]
mov dword [ebp + 0x28], edi
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x34], ebx
jle 0x410004
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x40ff97
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x20]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x20], 8
fstp qword [eax]
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x40ffd5
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x2c]
imul ecx, edi
add dword [ebp + 0x2c], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jl 0x40ff87
fstp st(0)
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x38], ebx
jle 0x4101ac
fld qword [0x47a700]
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x41019b
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x40], ebx
jle 0x41018c
mov edi, dword [ebp + 0x2c]
imul edi, dword [ebp - 0x5c]
add edi, dword [ebp + 0x30]
mov eax, dword [esi + 0xc]
imul edi, dword [ebp - 0x60]
add edi, dword [ebp + 0x20]
sub eax, 2
imul eax, dword [ebp + 0x28]
add edi, dword [ebp - 0x4c]
mov dword [ebp + 0xc], ebx
add eax, edi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp + 0x2c]
add eax, dword [ebp + 0x30]
mov dword [ebp + 0x14], edi
imul eax, dword [ebp - 0x40]
add eax, dword [ebp + 0x20]
add eax, dword [ebp - 0x2c]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x34], ebx
jle 0x41017d
mov eax, dword [ebp + 0x24]
fld qword [eax]
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax]
add dword [ebp + 0x24], 8
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x28]
fild dword [ebp - 0x14]
cmp eax, edi
jbe 0x4100b6
mov edx, eax
sub edx, ecx
movzx edx, byte [edx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x4100b8
fld st(0)
cmp eax, dword [ebp + 0x10]
ja 0x4100c9
movzx edx, byte [eax + ecx]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
jmp 0x4100cb
fld st(1)
cmp eax, dword [ebp + 0x10]
jae 0x4100df
movzx eax, byte [eax + ecx*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fstp qword [ebp - 0x18]
jmp 0x4100e2
fst qword [ebp - 0x18]
fld st(3)
fmul st(4)
fld st(2)
fadd st(0), st(0)
fld st(4)
fmul qword [0x47a6f8]
fsubp st(1)
fld st(2)
fmul qword [0x47a6f0]
faddp st(1)
fsub qword [ebp - 0x18]
fmul st(1)
fld st(2)
fsub st(4)
fmul st(6)
faddp st(1)
fld st(4)
fmul st(7)
fsubrp st(4)
fxch st(2)
fmul st(6)
fsubp st(3)
fxch st(2)
fadd qword [ebp - 0x18]
fxch st(4)
fmulp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fmul qword [0x479ea0]
faddp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x41014c
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x410150
fstp st(1)
jmp 0x410152
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], al
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
add ecx, dword [ebp + 0x28]
add dword [ebp + 0x14], eax
add dword [ebp + 0x18], 4
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x1c], ecx
cmp eax, dword [ebp - 0x34]
jl 0x41008b
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x40]
jl 0x410030
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x3c]
jl 0x410024
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x38]
jl 0x410018
fstp st(0)
lea ecx, [ebp - 0x60]
call fcn.00404976
jmp 0x4101cf
push 1
push dword [ebp - 0x54]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x4c]
call fcn.00408b16
push 0x51
pop edi
cmp byte [ebp - 0x30], bl
je 0x4102b3
cmp byte [ebp - 0x50], bl
je 0x41027e
cmp byte [ebp - 0x68], bl
je 0x410245
cmp byte [ebp - 0x80], bl
je 0x410209
lea eax, [ebp - 0x4dc]
push eax
mov ecx, esi
call fcn.00408ae5
mov byte [ebp - 4], 0x4b
mov dword [ebp - 0x10], 0x20000
jmp 0x410229
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.004072df
mov dword [ebp - 4], 0x4c
mov dword [ebp - 0x10], 0x40000
push eax
lea ecx, [ebp - 0x47c]
call fcn.004072df
mov dword [ebp - 4], 0x4d
or dword [ebp - 0x10], 0x80000
jmp 0x410262
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x44c]
call fcn.004072df
mov dword [ebp - 4], 0x4e
mov dword [ebp - 0x10], 0x100000
push eax
lea ecx, [ebp - 0x41c]
call fcn.004072df
mov dword [ebp - 4], 0x4f
or dword [ebp - 0x10], 0x200000
jmp 0x41029b
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x3ec]
call fcn.004072df
mov dword [ebp - 4], 0x50
mov dword [ebp - 0x10], 0x400000
push eax
lea ecx, [ebp - 0x3bc]
call fcn.004072df
mov dword [ebp - 4], edi
or dword [ebp - 0x10], 0x800000
jmp 0x4102d0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004072df
mov dword [ebp - 4], 0x52
mov dword [ebp - 0x10], 0x1000000
mov ecx, dword [ebp + 8]
push eax
call fcn.004072df
or dword [ebp - 0x10], 1
mov dword [ebp - 4], edi
test dword [ebp - 0x10], 0x1000000
je 0x410304
and dword [ebp - 0x10], 0xfeffffff
cmp byte [ebp - 0x37c], bl
jne 0x410304
push dword [ebp - 0x378]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x50
test dword [ebp - 0x10], 0x800000
je 0x41032f
and dword [ebp - 0x10], 0xff7fffff
cmp byte [ebp - 0x3ac], bl
jne 0x41032f
push dword [ebp - 0x3a8]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x4f
test dword [ebp - 0x10], 0x400000
je 0x41035a
and dword [ebp - 0x10], 0xffbfffff
cmp byte [ebp - 0x3dc], bl
jne 0x41035a
push dword [ebp - 0x3d8]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x4e
test dword [ebp - 0x10], 0x200000
je 0x410385
and dword [ebp - 0x10], 0xffdfffff
cmp byte [ebp - 0x40c], bl
jne 0x410385
push dword [ebp - 0x408]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x4d
test dword [ebp - 0x10], 0x100000
je 0x4103b0
and dword [ebp - 0x10], 0xffefffff
cmp byte [ebp - 0x43c], bl
jne 0x4103b0
push dword [ebp - 0x438]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x4c
test dword [ebp - 0x10], 0x80000
je 0x4103db
and dword [ebp - 0x10], 0xfff7ffff
cmp byte [ebp - 0x46c], bl
jne 0x4103db
push dword [ebp - 0x468]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x4b
test dword [ebp - 0x10], 0x40000
je 0x410406
and dword [ebp - 0x10], 0xfffbffff
cmp byte [ebp - 0x49c], bl
jne 0x410406
push dword [ebp - 0x498]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x42
test dword [ebp - 0x10], 0x20000
je 0x410431
and dword [ebp - 0x10], 0xfffdffff
cmp byte [ebp - 0x4cc], bl
jne 0x410431
push dword [ebp - 0x4c8]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x41
cmp byte [ebp - 0x30], bl
jne 0x410443
push dword [ebp - 0x2c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x40
cmp byte [ebp - 0x50], bl
jne 0x410455
push dword [ebp - 0x4c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x3f
cmp byte [ebp - 0x68], bl
jne 0x410467
push dword [ebp - 0x64]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x3e
cmp byte [ebp - 0x80], bl
jne 0x410479
push dword [ebp - 0x7c]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x3d
jmp 0x40e849
push edi
push edi
push edi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00404bf1
add esp, 0x10
push eax
lea ecx, [ebp - 0x100]
call fcn.00407709
mov byte [ebp - 4], 0x53
push edi
push edi
push edi
push dword [ebp - 0x100]
lea ecx, [ebp - 0xe0]
call fcn.0040790b
mov byte [ebp - 4], 0x54
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], bl
mov dword [ebp - 0x64], ebx
mov byte [ebp - 4], 0x55
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 0x56
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov byte [ebp - 0x80], bl
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 4], 0x57
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x30], bl
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 4], 0x58
mov eax, dword [esi]
cmp dword [ebp + 0xc], eax
je 0x41092c
cmp eax, edi
jne 0x41058f
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x50c]
fst dword [esp + 8]
mov ecx, esi
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x4fc], bl
jne 0x410942
push dword [ebp - 0x4f8]
jmp 0x4105ea
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
jbe 0x4105f5
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x53c]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push ecx
push eax
mov ecx, esi
call fcn.0040c19a
mov byte [ebp - 4], 0x5a
lea ecx, [ebp - 0x78]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x52c], bl
jne 0x410942
push dword [ebp - 0x528]
call fcn.0041f057
pop ecx
jmp 0x410942
cmp dword [ebp + 0x20], ebx
jne 0x410625
cmp ecx, eax
jbe 0x410625
cmp ecx, edi
jbe 0x410621
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x410612
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x41063d
fldz
jmp 0x410647
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x410635
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x410645
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x78]
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x78], ebx
jle 0x4106f4
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x41068d
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi]
mov dword [ebp + 0x30], eax
fld st(0)
fxch st(1)
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x24]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fcomp qword [ebp - 0x24]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0x24]
je 0x4106c8
lea eax, [ebp - 0x48]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
add dword [ebp + 0x28], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x78]
jl 0x41067d
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x6c], ebx
jle 0x410942
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x70], ebx
jle 0x410918
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x74], ebx
jle 0x410909
mov edi, dword [esi + 8]
imul edi, dword [ebp + 0x28]
add edi, dword [ebp + 0x2c]
mov eax, dword [esi]
imul edi, dword [esi + 4]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x28], ebx
imul edi, eax
add edi, dword [esi + 0x14]
lea eax, [edi + eax - 2]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x70]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
lea ecx, [edi + 1]
imul eax, dword [ebp - 0x74]
add eax, dword [ebp + 0x30]
mov dword [ebp - 0x20], ecx
imul eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x64]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x78], ebx
jle 0x4108fa
mov eax, dword [ebp + 0x24]
fld qword [eax]
add dword [ebp + 0x24], 8
fstp qword [ebp - 0xa0]
push ecx
fld qword [ebp - 0xa0]
fadd qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xa0]
fadd qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x98]
fld qword [ebp - 0xa0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xa8]
fld qword [ebp - 0xa0]
fsub qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xc8]
fld qword [ebp - 0xa0]
fsub qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
movzx eax, byte [edi]
mov dword [ebp - 0x14], eax
pop ecx
fild dword [ebp - 0x14]
cmp edi, dword [ebp - 0x20]
jb 0x410838
movzx eax, byte [edi - 1]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x41083a
fld st(0)
cmp edi, dword [ebp - 0x20]
jbe 0x41084b
movzx eax, byte [edi - 2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x41084d
fld st(0)
cmp edi, dword [ebp - 0x44]
ja 0x41085e
movzx eax, byte [edi + 1]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x410860
fld st(2)
cmp edi, dword [ebp - 0x44]
jae 0x410871
movzx eax, byte [edi + 2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x410873
fld st(0)
fxch st(3)
fmul qword [ebp - 0x98]
fxch st(2)
fmul qword [ebp - 0xe8]
faddp st(2)
fxch st(3)
fmul qword [ebp - 0xa8]
faddp st(1)
fxch st(2)
fmul qword [ebp - 0xc8]
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [ebp - 0xa8]
fadd qword [ebp - 0x98]
fadd qword [ebp - 0xc8]
faddp st(2)
fdivrp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x4108cf
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4108d3
fstp st(1)
jmp 0x4108d5
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp + 0x1c]
inc dword [ebp + 0x1c]
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
add edi, dword [eax]
add dword [ebp - 0x1c], 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x78]
jl 0x410779
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x74]
jl 0x41071a
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x70]
jl 0x41070e
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x6c]
jl 0x410702
xor edi, edi
inc edi
jmp 0x410942
push edi
push dword [esi + 0xc]
lea ecx, [ebp - 0x78]
push dword [esi + 8]
push dword [esi + 4]
push eax
push dword [esi + 0x14]
call fcn.00408b16
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
cmp ecx, eax
je 0x410d75
cmp eax, edi
jne 0x4109aa
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x56c]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push edi
push dword [esi + 0xc]
push dword [esi + 8]
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x78]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x55c], bl
jne 0x410d6b
push dword [ebp - 0x558]
jmp 0x410a05
cmp eax, ecx
jbe 0x410a10
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea eax, [ebp - 0x59c]
fst dword [esp + 8]
lea ecx, [ebp - 0x78]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x5c
lea ecx, [ebp - 0x60]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x58c], bl
jne 0x410d6b
push dword [ebp - 0x588]
call fcn.0041f057
pop ecx
jmp 0x410d6b
cmp dword [ebp + 0x20], ebx
jne 0x410a40
cmp ecx, eax
jbe 0x410a40
cmp ecx, edi
jbe 0x410a3c
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x410a2d
fadd qword [0x479cd0]
fsub qword [0x479e98]
dec ecx
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x410a58
fldz
jmp 0x410a62
mov dword [ebp + 0x30], eax
fild dword [ebp + 0x30]
test eax, eax
jns 0x410a50
fadd qword [0x479cd0]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x410a60
fadd qword [0x479cd0]
fdivp st(1)
push dword [esi + 0xc]
fstp qword [ebp - 0x18]
lea ecx, [ebp - 0x60]
push dword [esi + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x5c], ebx
jle 0x410b20
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x410aa9
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 4]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0xc8]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fcomp qword [ebp - 0xc8]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0xc8]
je 0x410af0
lea eax, [ebp - 0x24]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
imul ecx, dword [ebp + 0xc]
mov dword [edi], ecx
add edi, 4
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x5c]
jl 0x410a99
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x54], ebx
jle 0x410d6b
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x58], ebx
jle 0x410d5c
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x60], ebx
jle 0x410d4d
mov edi, dword [ebp + 0x28]
imul edi, dword [ebp - 0x70]
add edi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0xc]
imul edi, dword [ebp - 0x74]
imul edi, dword [ebp - 0x78]
add edi, dword [ebp + 0x30]
mov dword [ebp - 0x1c], ebx
add edi, dword [ebp - 0x64]
lea eax, [edi + ecx]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 4]
sub eax, 2
imul eax, ecx
add eax, edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x58]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x60]
imul eax, dword [ebp - 0x5c]
add eax, dword [ebp + 0x30]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x5c], ebx
jle 0x410d3e
mov eax, dword [ebp + 0x24]
fld qword [eax]
add dword [ebp + 0x24], 8
fstp qword [ebp - 0xa0]
push ecx
fld qword [ebp - 0xa0]
fadd qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xa0]
fadd qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xa8]
fld qword [ebp - 0xa0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xc8]
fld qword [ebp - 0xa0]
fsub qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x98]
fld qword [ebp - 0xa0]
fsub qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
movzx eax, byte [edi]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
pop ecx
fild dword [ebp - 0x14]
cmp edi, dword [ebp - 0x20]
jb 0x410c73
mov ecx, edi
sub ecx, eax
movzx ecx, byte [ecx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x410c75
fld st(0)
cmp edi, dword [ebp - 0x20]
jbe 0x410c8c
lea ecx, [eax + eax]
mov edx, edi
sub edx, ecx
movzx ecx, byte [edx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x410c8e
fld st(0)
cmp edi, dword [ebp - 0x44]
ja 0x410c9f
movzx ecx, byte [edi + eax]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x410ca1
fld st(2)
cmp edi, dword [ebp - 0x44]
jae 0x410cb2
movzx eax, byte [edi + eax*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x410cb4
fld st(0)
fxch st(3)
fmul qword [ebp - 0xa8]
fxch st(2)
fmul qword [ebp - 0xe8]
faddp st(2)
fxch st(3)
fmul qword [ebp - 0xc8]
faddp st(1)
fxch st(2)
fmul qword [ebp - 0x98]
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [ebp - 0xc8]
fadd qword [ebp - 0xa8]
fadd qword [ebp - 0x98]
faddp st(2)
fdivrp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x410d10
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x410d14
fstp st(1)
jmp 0x410d16
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp - 0x28]
mov byte [ecx], al
mov eax, dword [ebp + 0x1c]
add ecx, dword [ebp + 0xc]
add edi, dword [eax]
add dword [ebp + 0x1c], 4
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp - 0x5c]
jl 0x410bae
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x60]
jl 0x410b46
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x58]
jl 0x410b3a
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x54]
jl 0x410b2e
lea ecx, [ebp - 0x78]
call fcn.00404976
jmp 0x410d8d
push edi
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x60]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp - 0x64]
call fcn.00408b16
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x14]
cmp eax, ecx
je 0x41120b
cmp ecx, 1
jne 0x410df9
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push dword [esi + 0xc]
lea ecx, [ebp - 0x60]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x5cc]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x5d
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x5bc], bl
jne 0x411201
push dword [ebp - 0x5b8]
jmp 0x410e55
cmp ecx, eax
jbe 0x410e60
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x60]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push dword [esi + 0xc]
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x5fc]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x5e
lea ecx, [ebp - 0x90]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x5ec], bl
jne 0x411201
push dword [ebp - 0x5e8]
call fcn.0041f057
pop ecx
jmp 0x411201
cmp dword [ebp + 0x20], ebx
jne 0x410e93
cmp eax, ecx
jbe 0x410e93
cmp eax, 1
jbe 0x410e8f
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x410e7e
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
jmp 0x410eab
fldz
jmp 0x410eb7
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x410ea3
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x30], ecx
fild dword [ebp + 0x30]
test ecx, ecx
jns 0x410eb5
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x10]
fstp qword [ebp - 0x18]
push dword [esi + 0xc]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x10]
lea ecx, [ebp - 0x90]
push dword [ebp + 0xc]
mov dword [ebp + 0x24], edi
call fcn.00407d18
mov eax, dword [ebp - 0xec]
fldz
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x1c], ebx
cmp dword [ebp - 0x88], ebx
jle 0x410f8c
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x410f0f
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x2c]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x2c], 8
fstp qword [eax]
mov eax, dword [esi + 8]
mov dword [ebp + 0x30], eax
fld st(0)
fld qword [ebp - 0x18]
faddp st(2)
fxch st(1)
fstp qword [ebp - 0xc8]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fcomp qword [ebp - 0xc8]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0xc8]
je 0x410f56
lea eax, [ebp - 0x24]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x28]
imul ecx, edi
add dword [ebp + 0x28], 4
inc dword [ebp + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0x88]
jl 0x410eff
fstp st(0)
mov dword [ebp + 0x28], ebx
cmp dword [ebp - 0x84], ebx
jle 0x411201
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x8c], ebx
jle 0x4111ef
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x90], ebx
jle 0x4111dd
mov edi, dword [ebp - 0x58]
imul edi, dword [ebp - 0x5c]
imul edi, dword [ebp + 0x28]
add edi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x24]
imul edi, dword [ebp - 0x60]
add edi, dword [ebp - 0x4c]
mov dword [ebp - 0x28], ebx
add edi, dword [ebp + 0x30]
lea eax, [ecx + edi]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
sub eax, 2
imul eax, ecx
add eax, edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x8c]
imul eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
imul eax, dword [ebp - 0x90]
add eax, dword [ebp - 0x7c]
add eax, dword [ebp + 0x30]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x1c], eax
cmp dword [ebp - 0x88], ebx
jle 0x4111cb
mov eax, dword [ebp + 0x1c]
fld qword [eax]
add dword [ebp + 0x1c], 8
fstp qword [ebp - 0xa8]
push ecx
fld qword [ebp - 0xa8]
fadd qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x10c]
fld qword [ebp - 0xa8]
fadd qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x98]
fld qword [ebp - 0xa8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xc8]
fld qword [ebp - 0xa8]
fsub qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xe8]
fld qword [ebp - 0xa8]
fsub qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
movzx eax, byte [edi]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x24]
pop ecx
fild dword [ebp - 0x14]
cmp edi, dword [ebp - 0x20]
jb 0x4110f7
mov ecx, edi
sub ecx, eax
movzx ecx, byte [ecx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x4110f9
fld st(0)
cmp edi, dword [ebp - 0x20]
jbe 0x411110
lea ecx, [eax + eax]
mov edx, edi
sub edx, ecx
movzx ecx, byte [edx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x411112
fld st(0)
cmp edi, dword [ebp - 0x44]
ja 0x411123
movzx ecx, byte [eax + edi]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x411125
fld st(2)
cmp edi, dword [ebp - 0x44]
jae 0x411136
movzx eax, byte [edi + eax*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x411138
fld st(0)
fxch st(3)
fmul qword [ebp - 0x98]
fxch st(2)
fmul qword [ebp - 0x10c]
faddp st(2)
fxch st(3)
fmul qword [ebp - 0xc8]
faddp st(1)
fxch st(2)
fmul qword [ebp - 0xe8]
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [ebp - 0xc8]
fadd qword [ebp - 0x98]
fadd qword [ebp - 0xe8]
faddp st(2)
fdivrp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x411194
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x411198
fstp st(1)
jmp 0x41119a
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp - 0x9c]
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
add ecx, dword [ebp + 0x24]
add edi, dword [eax]
add dword [ebp - 0x1c], 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x9c], ecx
cmp eax, dword [ebp - 0x88]
jl 0x411032
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x90]
jl 0x410fbb
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x8c]
jl 0x410fac
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x84]
jl 0x410f9d
lea ecx, [ebp - 0x60]
call fcn.00404976
jmp 0x411227
push 1
push dword [ebp - 0x54]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x4c]
call fcn.00408b16
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 0x18]
cmp eax, ecx
je 0x411663
cmp ecx, 1
jne 0x411293
fldz
sub esp, 0x10
fst dword [esp + 0xc]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push ecx
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x62c]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x90]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x5f
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x61c], bl
jne 0x411656
push dword [ebp - 0x618]
jmp 0x4112ef
cmp ecx, eax
jbe 0x4112fa
fldz
sub esp, 0x10
fst dword [esp + 0xc]
lea ecx, [ebp - 0x90]
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push ebx
push 2
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x65c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.0040c19a
mov byte [ebp - 4], 0x60
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00408ab0
mov byte [ebp - 4], 0x58
cmp byte [ebp - 0x64c], bl
jne 0x411656
push dword [ebp - 0x648]
call fcn.0041f057
pop ecx
jmp 0x411656
cmp dword [ebp + 0x20], ebx
jne 0x41132d
cmp eax, ecx
jbe 0x41132d
cmp eax, 1
jbe 0x411329
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x411318
fadd qword [0x479cd0]
fsub qword [0x479e98]
lea ecx, [eax - 1]
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
jmp 0x411345
fldz
jmp 0x411351
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x41133d
fadd qword [0x479cd0]
mov ecx, eax
mov dword [ebp + 0x20], ecx
fild dword [ebp + 0x20]
test ecx, ecx
jns 0x41134f
fadd qword [0x479cd0]
fdivp st(1)
mov edi, dword [ebp + 0x14]
fstp qword [ebp - 0x18]
imul edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0xc]
push eax
push dword [ebp + 0x14]
lea ecx, [ebp - 0x40]
push dword [ebp + 0x10]
mov dword [ebp + 0x28], edi
push dword [ebp + 0xc]
call fcn.00407d18
fldz
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x2c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], ebx
cmp dword [ebp - 0x34], ebx
jle 0x411428
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp + 0x30]
fild dword [ebp + 0x30]
test eax, eax
jns 0x4113a7
fadd qword [0x479cd0]
mov eax, dword [ebp + 0x20]
fld st(1)
fsubrp st(1)
add dword [ebp + 0x20], 8
fstp qword [eax]
mov eax, dword [esi + 0xc]
mov dword [ebp + 0x30], eax
fld st(0)
fxch st(1)
fadd qword [ebp - 0x18]
fstp qword [ebp - 0xe8]
fild dword [ebp + 0x30]
fsub qword [0x479e98]
fstp qword [ebp - 0xc8]
fld qword [ebp - 0xc8]
fcomp qword [ebp - 0xe8]
fnstsw ax
test ah, 0x41
lea eax, [ebp - 0xe8]
je 0x4113f5
lea eax, [ebp - 0xc8]
fld qword [eax]
fld st(0)
call fcn.0041ff56
fxch st(1)
mov dword [ebp + 0x30], eax
call fcn.0041ff56
mov ecx, dword [ebp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0x2c]
imul ecx, edi
add dword [ebp + 0x2c], 4
inc dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x34]
jl 0x411397
fstp st(0)
mov dword [ebp + 0x2c], ebx
cmp dword [ebp - 0x38], ebx
jle 0x411656
mov dword [ebp + 0x30], ebx
cmp dword [ebp - 0x3c], ebx
jle 0x411647
mov dword [ebp + 0x20], ebx
cmp dword [ebp - 0x40], ebx
jle 0x411638
mov edi, dword [ebp + 0x2c]
imul edi, dword [ebp - 0x8c]
add edi, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x28]
imul edi, dword [ebp - 0x90]
add edi, dword [ebp - 0x7c]
mov dword [ebp + 0x18], ebx
add edi, dword [ebp + 0x20]
lea eax, [edi + ecx]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0xc]
sub eax, 2
imul eax, ecx
add eax, edi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp + 0x2c]
add eax, dword [ebp + 0x30]
imul eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x2c]
add eax, dword [ebp + 0x20]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x34], ebx
jle 0x411629
mov eax, dword [ebp + 0x24]
fld qword [eax]
add dword [ebp + 0x24], 8
fstp qword [ebp - 0x24]
push ecx
fld qword [ebp - 0x24]
fadd qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x10c]
fld qword [ebp - 0x24]
fadd qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xc8]
fld qword [ebp - 0x24]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0xe8]
fld qword [ebp - 0x24]
fsub qword [0x479e98]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
fstp qword [ebp - 0x48]
fld qword [ebp - 0x24]
fsub qword [0x47a6e0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.00404b25
movzx eax, byte [edi]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x28]
pop ecx
fild dword [ebp - 0x14]
cmp edi, dword [ebp + 0xc]
jb 0x411564
mov ecx, edi
sub ecx, eax
movzx ecx, byte [ecx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x411566
fld st(0)
cmp edi, dword [ebp + 0xc]
jbe 0x41157d
lea ecx, [eax + eax]
mov edx, edi
sub edx, ecx
movzx ecx, byte [edx]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x41157f
fld st(0)
cmp edi, dword [ebp + 0x10]
ja 0x411590
movzx ecx, byte [edi + eax]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
jmp 0x411592
fld st(2)
cmp edi, dword [ebp + 0x10]
jae 0x4115a3
movzx eax, byte [edi + eax*2]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
jmp 0x4115a5
fld st(0)
fxch st(3)
fmul qword [ebp - 0xc8]
fxch st(2)
fmul qword [ebp - 0x10c]
faddp st(2)
fxch st(3)
fmul qword [ebp - 0xe8]
faddp st(1)
fxch st(2)
fmul qword [ebp - 0x48]
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [ebp - 0xe8]
fadd qword [ebp - 0xc8]
fadd qword [ebp - 0x48]
faddp st(2)
fdivrp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x4115fb
fstp st(0)
fld qword [0x47a6e8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x4115ff
fstp st(1)
jmp 0x411601
fstp st(0)
call fcn.0041ff56
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], al
mov eax, dword [ebp + 0x14]
add ecx, dword [ebp + 0x28]
add edi, dword [eax]
add dword [ebp + 0x14], 4
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], ecx
cmp eax, dword [ebp - 0x34]
jl 0x4114b4
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x40]
jl 0x41144e
inc dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x3c]
jl 0x411442
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0x38]
jl 0x411436
lea ecx, [ebp - 0x90]
call fcn.00404976
jmp 0x411688
push 1
push dword [ebp - 0x84]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push dword [ebp - 0x7c]
call fcn.00408b16
push 0x67
pop edi
cmp byte [ebp - 0x30], bl
je 0x41176c
cmp byte [ebp - 0x80], bl
je 0x411734
cmp byte [ebp - 0x50], bl
je 0x4116fb
cmp byte [ebp - 0x68], bl
je 0x4116c2
lea eax, [ebp - 0x7dc]
push eax
mov ecx, esi
call fcn.00408ae5
mov byte [ebp - 4], 0x61
mov dword [ebp - 0x10], 0x2000000
jmp 0x4116df
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x7ac]
call fcn.004072df
mov dword [ebp - 4], 0x62
mov dword [ebp - 0x10], 0x4000000
push eax
lea ecx, [ebp - 0x77c]
call fcn.004072df
mov dword [ebp - 4], 0x63
or dword [ebp - 0x10], 0x8000000
jmp 0x411718
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x74c]
call fcn.004072df
mov dword [ebp - 4], 0x64
mov dword [ebp - 0x10], 0x10000000
push eax
lea ecx, [ebp - 0x71c]
call fcn.004072df
mov dword [ebp - 4], 0x65
or dword [ebp - 0x10], 0x20000000
jmp 0x411754
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x6ec]
call fcn.004072df
mov dword [ebp - 4], 0x66
mov dword [ebp - 0x10], 0x40000000
push eax
lea ecx, [ebp - 0x6bc]
call fcn.004072df
mov dword [ebp - 4], edi
or dword [ebp - 0x10], 0x80000000
jmp 0x41178c
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x68c]
call fcn.004072df
mov dword [ebp - 4], 0x68
mov dword [ebp - 0x104], 1
mov ecx, dword [ebp + 8]
push eax
call fcn.004072df
or dword [ebp - 0x10], 1
mov dword [ebp - 4], edi
test byte [ebp - 0x104], 1
je 0x4117c0
and dword [ebp - 0x104], 0xfffffffe
cmp byte [ebp - 0x67c], bl
jne 0x4117c0
push dword [ebp - 0x678]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x66
test dword [ebp - 0x10], 0x80000000
je 0x4117eb
and dword [ebp - 0x10], 0x7fffffff
cmp byte [ebp - 0x6ac], bl
jne 0x4117eb
push dword [ebp - 0x6a8]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x65
test dword [ebp - 0x10], 0x40000000
je 0x411816
and dword [ebp - 0x10], 0xbfffffff
cmp byte [ebp - 0x6dc], bl
jne 0x411816
push dword [ebp - 0x6d8]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x64
test dword [ebp - 0x10], 0x20000000
je 0x411841
and dword [ebp - 0x10], 0xdfffffff
cmp byte [ebp - 0x70c], bl
jne 0x411841
push dword [ebp - 0x708]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x63
test dword [ebp - 0x10], 0x10000000
je 0x41186c
and dword [ebp - 0x10], 0xefffffff
cmp byte [ebp - 0x73c], bl
jne 0x41186c
push dword [ebp - 0x738]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x62
test dword [ebp - 0x10], 0x8000000
je 0x411897
and dword [ebp - 0x10], 0xf7ffffff
cmp byte [ebp - 0x76c], bl
jne 0x411897
push dword [ebp - 0x768]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x61
test dword [ebp - 0x10], 0x4000000
je 0x4118c2
and dword [ebp - 0x10], 0xfbffffff
cmp byte [ebp - 0x79c], bl
jne 0x4118c2
push dword [ebp - 0x798]
call fcn.0041f057
pop ecx
mov dword [ebp - 4], 0x58
test dword [ebp - 0x10], 0x2000000
je 0x4118ed
and dword [ebp - 0x10], 0xfdffffff
cmp byte [ebp - 0x7cc], bl
jne 0x4118ed
push dword [ebp - 0x7c8]
call fcn.0041f057
pop ecx
mov byte [ebp - 4], 0x57
lea ecx, [ebp - 0x40]
call fcn.00404947
mov byte [ebp - 4], 0x56
lea ecx, [ebp - 0x90]
call fcn.00404947
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0x60]
call fcn.00404947
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x78]
call fcn.00404947
mov byte [ebp - 4], 0x53
lea ecx, [ebp - 0xe0]
call fcn.00404947
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x100]
call fcn.00404947
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xc0]
call fcn.00404947
jmp 0x40c33c
mov eax, 0x479d22
cmp byte [esi + 0x10], bl
jne 0x411960
mov eax, str.non_
push ecx
push str.uint8
push eax
push dword [esi + 0x14]
lea eax, [ebp - 0x11c]
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push str._instance__u__u__u__u__p__sshared___CImg__s_::resize__:_Invalid_specified_interpolation__d__should_be___1raw__0none__1nearest__2average__3linear__4grid__5cubic__6lanczos__.
push eax
call fcn.0041726e
add esp, 0x28
push 0x4849c0
lea eax, [ebp - 0x11c]
push eax
call fcn.0041f123
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x10], bl
mov dword [eax + 0x14], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], 1
jmp 0x40c33f
fstp st(0)
jmp 0x4119c3
fstp st(1)
fstp st(0)
mov eax, 0x479d22
cmp byte [esi + 0x10], bl
jne 0x4119d4
mov eax, str.non_
fld dword [ebp + 0x30]
sub esp, 0x20
fstp qword [esp + 0x18]
fld dword [ebp + 0x2c]
fstp qword [esp + 0x10]
fld dword [ebp + 0x28]
fstp qword [esp + 8]
fld dword [ebp + 0x24]
fstp qword [esp]
push str.uint8
push eax
push dword [esi + 0x14]
lea eax, [ebp - 0x11c]
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push str._instance__u__u__u__u__p__sshared___CImg__s_::resize__:_Specified_centering_arguments___g__g__g__g__are_outside_range__0_1_.
push eax
call fcn.0041726e
add esp, 0x44
jmp 0x411989