Function at 0x66c467
Capabilities:
Parse pe header

Disassembly:
mov eax, 0xaafce8
call fcn.00a6fc7c
sub esp, 0x2ec
push ebx
push esi
push edi
mov dword [ebp - 0x84], ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.0066e198
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x58], ebx
mov edi, 0xbe7330
push edi
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 2
call fcn.0040318f
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.0040318f
push ebx
push ebx
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 4
call fcn.00414b5f
push ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.0040339f
lea eax, [ebp - 0x118]
push eax
mov byte [ebp - 4], 4
call fcn.00406548
mov ecx, eax
call fcn.00402680
mov ecx, eax
call fcn.00404a75
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.004032b2
cmp eax, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ebx
je 0x66c527
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004053ee
cmp eax, ebx
jge 0x66c527
cmp eax, 0x80004002
je 0x66c527
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x118]
push eax
mov byte [ebp - 4], 0xa
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c542
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 9
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c55a
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 4], 8
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c575
push eax
call fcn.00a6ef01
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x549
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0xc
call fcn.00415344
mov esi, eax
neg esi
sbb esi, esi
lea eax, [ebp - 0x7c]
neg esi
push eax
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 8
call fcn.004029b7
add esp, 0xc
cmp eax, ebx
jge 0x66c5d7
push eax
call fcn.00a6ef01
cmp esi, ebx
jne 0x66c6a0
xor esi, esi
cmp dword [ebp - 0x1c], ebx
jne 0x66c5f0
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x1c]
call fcn.00409ffd
cmp esi, eax
jae 0x66c6a0
push 0x20
pop eax
call fcn.00a70270
mov eax, esp
push ebx
push ebx
push eax
push esi
call fcn.004150a7
pop ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.0040339f
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.004032b2
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x60]
call fcn.0041f042
cmp eax, ebx
jge 0x66c661
cmp eax, 0x80004002
je 0x66c661
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 4], 8
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c679
push eax
call fcn.00a6ef01
push ebx
lea ecx, [ebp - 0x60]
call fcn.00414a5f
test al, al
jne 0x66c69a
push 0xffffffffffffffff
lea ecx, [ebp - 0x58]
call fcn.004b6c5c
push dword [ebp - 0x60]
mov ecx, eax
call fcn.00405326
inc esi
jmp 0x66c5e1
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x556
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x10
call fcn.00415344
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 4], 8
call fcn.004029b7
add esp, 0xc
cmp eax, ebx
jge 0x66c700
push eax
call fcn.00a6ef01
push 0x64
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x331
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x12
call fcn.00415344
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 4], 8
call fcn.004029b7
add esp, 0xc
cmp eax, ebx
jge 0x66c75b
push eax
call fcn.00a6ef01
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0xda1
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x14
call fcn.00415344
mov esi, eax
neg esi
lea eax, [ebp - 0x7c]
sbb esi, esi
push eax
neg esi
mov byte [ebp - 4], 8
call fcn.004029b7
add esp, 0xc
cmp eax, ebx
jge 0x66c7b7
push eax
call fcn.00a6ef01
cmp esi, ebx
je 0x66c81d
push 0x64
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x155b
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x16
call fcn.00415344
mov esi, eax
call fcn.00a70bad
cdq
push 0x19
pop ecx
idiv ecx
push 0x64
pop ecx
mov byte [ebp - 4], 8
add edx, 0x1e
imul esi, edx
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x7c]
jmp 0x66c861
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x155b
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x18
call fcn.00415344
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x7c]
push eax
call fcn.004029b7
add esp, 0xc
cmp eax, ebx
jge 0x66c874
push eax
call fcn.00a6ef01
cmp dword [ebp - 0x6c], ebx
jne 0x66ca1c
push edi
lea ecx, [ebp - 0x108]
call fcn.0040318f
push 3
push ebx
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x19
call fcn.004031b5
cmp dword [0xbe2788], ebx
mov byte [ebp - 4], 0x1a
jne 0x66c8b1
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [0xbe2788]
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0xf8]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x10]
push eax
call fcn.00427eb3
lea eax, [ebp - 0xf8]
push eax
mov byte [ebp - 4], 0x1d
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c8ee
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x108]
push eax
mov byte [ebp - 4], 0x1c
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c909
push eax
call fcn.00a6ef01
push edi
lea ecx, [ebp - 0x48]
call fcn.0040318f
push edi
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x1e
call fcn.0040318f
cmp dword [ebp + 0x10], ebx
mov byte [ebp - 4], 0x1f
jne 0x66c935
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp + 0x10]
lea eax, [ebp + 0xc]
push eax
call fcn.00414899
mov esi, eax
cmp dword [esi], ebx
mov byte [ebp - 4], 0x20
jne 0x66c955
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [ecx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x98]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, 0xff
push eax
movsd dword es:[edi], dword [esi]
push eax
push ecx
mov dword [ebp + 0x14], ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x90]
cmp eax, ebx
jge 0x66c997
push 0xba0500
push dword [ebp + 0x14]
push eax
call fcn.00a6ef0f
lea ecx, [ebp + 0xc]
call fcn.00415cc4
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 4], 0x1e
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c9ba
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0x1c
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66c9d2
push eax
call fcn.00a6ef01
mov eax, dword [ebp - 0x84]
lea ecx, [eax + 0x64]
call fcn.004b6b0c
push dword [ebp + 0x10]
mov ecx, eax
call fcn.00429919
lea ecx, [ebp + 0x10]
call fcn.00415ceb
lea ecx, [ebp - 0x1c]
call fcn.004027e9
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0041f006
lea ecx, [ebp - 0x60]
call fcn.00415cd1
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
jmp 0x66e038
mov ecx, dword [ebp + 0x14]
imul ecx, ecx, 0x1f40
mov eax, 0xc350
sub eax, ecx
cmp dword [ebp - 0x6c], ebx
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x64], ebx
jle 0x66e013
mov ebx, dword [ebp - 0x28]
mov edi, 0x190
mov esi, 0x12c
call fcn.00a70bad
cdq
push 4
pop ecx
idiv ecx
mov dword [ebp - 0x14], edx
call fcn.00a70bad
cdq
push 4
pop ecx
idiv ecx
mov eax, dword [ebp - 0x14]
imul eax, edx
add eax, 0xf
mov dword [ebp - 0x4c], eax
call fcn.00a70bad
cdq
mov ecx, 0x168
idiv ecx
mov dword [ebp - 0x5c], edx
call fcn.00a70bad
cdq
mov ecx, 0xbb8
idiv ecx
add edx, ecx
cmp dword [ebp - 0x88], 0
mov dword [ebp - 0xc4], edx
jne 0x66cabc
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x66caa7
and dword [ebp - 0x2c], eax
jmp 0x66caad
mov eax, dword [eax - 4]
mov dword [ebp - 0x2c], eax
call fcn.00a70bad
xor edx, edx
div dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
jmp 0x66cac0
and dword [ebp - 0x2c], 0
mov eax, dword [ebp + 0x10]
sub eax, 0
je 0x66ccbd
dec eax
je 0x66cc78
dec eax
je 0x66cc33
dec eax
je 0x66cc00
dec eax
je 0x66cb8e
dec eax
je 0x66cb1d
dec eax
jne 0x66cd03
call fcn.00a70bad
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.00a70bad
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
mov dword [ebp - 0x28], ebx
jmp 0x66cd03
call fcn.00a70bad
cdq
push 0x14
pop ecx
idiv ecx
add edx, 0x186
mov dword [ebp - 0x20], edx
call fcn.00a70bad
fild dword [ebp - 0x5c]
push 0x14
pop ecx
cdq
fst qword [ebp - 0x40]
idiv ecx
push ecx
push ecx
fstp qword [esp]
mov ebx, edx
add ebx, 0x122
mov dword [ebp - 0x28], ebx
call fcn.00a71134
fmul qword [0xb00d90]
fadd qword [0xb00d80]
call fcn.00a70f94
fld qword [ebp - 0x40]
fstp qword [esp]
mov dword [ebp - 0x30], eax
call fcn.00a71084
fmul qword [0xb00d90]
pop ecx
pop ecx
fadd qword [0xb04b60]
call fcn.00a70f94
jmp 0x66cd00
call fcn.00a70bad
cdq
push 0x14
pop ecx
idiv ecx
add edx, 0x186
mov dword [ebp - 0x20], edx
call fcn.00a70bad
fild dword [ebp - 0x5c]
push 0x14
pop ecx
cdq
fst qword [ebp - 0x40]
idiv ecx
push ecx
push ecx
fstp qword [esp]
mov ebx, edx
add ebx, 0x24e
mov dword [ebp - 0x28], ebx
call fcn.00a71134
fmul qword [0xb04b58]
fadd qword [0xb00d80]
call fcn.00a70f94
fld qword [ebp - 0x40]
fstp qword [esp]
mov dword [ebp - 0x30], eax
call fcn.00a71084
call fcn.00a70f94
push eax
call fcn.00a70b13
add esp, 0xc
imul eax, eax, 0x2d1
jmp 0x66cd00
call fcn.00a70bad
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.00a70bad
cdq
mov ecx, 0x258
idiv ecx
mov eax, dword [ebp - 0x20]
mov ebx, edx
sub ebx, esi
add eax, 0x190
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], eax
jmp 0x66cc62
call fcn.00a70bad
cdq
mov ecx, 0x320
idiv ecx
sub edi, edx
mov dword [ebp - 0x20], edi
call fcn.00a70bad
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
add edi, 0xfffffe70
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x30], edi
call fcn.00a70bad
cdq
mov ecx, 0xc8
idiv ecx
lea eax, [edx + ebx - 0x64]
jmp 0x66cd00
call fcn.00a70bad
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.00a70bad
cdq
mov ecx, 0x258
idiv ecx
mov ebx, esi
sub ebx, edx
mov dword [ebp - 0x28], ebx
call fcn.00a70bad
cdq
mov ecx, 0xc8
idiv ecx
mov eax, dword [ebp - 0x20]
lea eax, [edx + eax - 0x64]
mov dword [ebp - 0x30], eax
lea eax, [ebx - 0x12c]
jmp 0x66cd00
call fcn.00a70bad
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.00a70bad
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
mov dword [ebp - 0x28], ebx
call fcn.00a70bad
cdq
mov ecx, 0xc8
idiv ecx
mov eax, dword [ebp - 0x20]
lea eax, [edx + eax - 0x64]
mov dword [ebp - 0x30], eax
lea eax, [ebx + 0x12c]
mov dword [ebp - 0x34], eax
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x88], 0
mov byte [ebp - 4], 0x21
jne 0x66cf3e
mov esi, 0xbe7330
push esi
lea ecx, [ebp - 0xf8]
call fcn.0040318f
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + ecx*4]
push 1
push eax
lea ecx, [ebp - 0x108]
call fcn.00411fe1
xor edi, edi
cmp dword [0xbe2788], edi
mov byte [ebp - 4], 0x23
jne 0x66cd58
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [0xbe2788]
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x108]
push eax
push 0xc0061508
push edi
push edi
push edi
push edi
lea eax, [ebp - 0xc0]
push eax
call fcn.00427eb3
push dword [eax]
lea ecx, [ebp - 0x10]
call fcn.00429919
lea ecx, [ebp - 0xc0]
call fcn.00415ceb
lea eax, [ebp - 0x108]
push eax
mov byte [ebp - 4], 0x22
call fcn.004029b7
cmp eax, edi
pop ecx
jge 0x66cdb1
push eax
call fcn.00a6ef01
lea eax, [ebp - 0xf8]
push eax
mov byte [ebp - 4], 0x21
call fcn.004029b7
cmp eax, edi
pop ecx
jge 0x66cdcc
push eax
call fcn.00a6ef01
push 0xff
push ecx
mov eax, esp
mov dword [ebp - 0x3c], esp
push 0x1550
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x24
call fcn.004b6ce7
mov ecx, eax
call fcn.00414a49
mov ecx, eax
call fcn.00404ba3
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x26
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x27
call fcn.00415344
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c8]
push eax
mov byte [ebp - 4], 0x26
call fcn.004029b7
add esp, 0xc
cmp eax, edi
jge 0x66ce50
push eax
call fcn.00a6ef01
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x21
call fcn.004027e9
push esi
lea ecx, [ebp - 0x168]
call fcn.0040318f
push esi
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x28
call fcn.0040318f
cmp dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x29
jne 0x66ce8e
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xcc]
push eax
call fcn.00414899
mov esi, eax
cmp dword [esi], edi
mov byte [ebp - 4], 0x2a
jne 0x66ceb1
push 0x80004003
call fcn.00a6ef01
mov eax, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x168]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x98]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
push dword [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x66cef4
push 0xba0500
push dword [ebp - 0x14]
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0xcc]
call fcn.00415cc4
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 4], 0x28
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66cf1a
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x168]
push eax
mov byte [ebp - 4], 0x21
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d1fb
push eax
call fcn.00a6ef01
jmp 0x66d1fb
push 0xff
push ecx
mov eax, esp
mov dword [ebp - 0x3c], esp
push 0x1550
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.00406368
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
push eax
mov byte [ebp - 4], 0x2c
call fcn.00415344
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2e8]
push eax
mov byte [ebp - 4], 0x21
call fcn.004029b7
xor esi, esi
add esp, 0xc
cmp eax, esi
jge 0x66cfa1
push eax
call fcn.00a6ef01
xor edi, edi
push 0x20
pop eax
call fcn.00a70270
mov eax, esp
push esi
push esi
push eax
push edi
call fcn.004150a7
pop ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call fcn.0040339f
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
mov ecx, eax
mov byte [ebp - 4], 0x2e
call fcn.004032b2
cmp eax, esi
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x68], esi
je 0x66d014
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x68]
call fcn.004053ee
cmp eax, esi
jge 0x66d014
cmp eax, 0x80004002
je 0x66d014
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x2d8]
push eax
mov byte [ebp - 4], 0x30
call fcn.004029b7
cmp eax, esi
pop ecx
jge 0x66d02f
push eax
call fcn.00a6ef01
cmp dword [ebp - 0x68], esi
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x68]
je 0x66d046
call fcn.004027e9
inc edi
jmp 0x66cfa3
call fcn.004027e9
call fcn.00a70bad
cdq
idiv edi
push 0x20
pop eax
mov edi, edx
call fcn.00a70270
mov eax, esp
push esi
push esi
push eax
push edi
call fcn.004150a7
pop ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call fcn.0040339f
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.0040263b
mov ecx, eax
call fcn.00403ac7
mov ecx, eax
mov byte [ebp - 4], 0x32
call fcn.004032b2
cmp eax, esi
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x80], esi
je 0x66d0c6
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x80]
call fcn.004053ee
cmp eax, esi
jge 0x66d0c6
cmp eax, 0x80004002
je 0x66d0c6
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x2f8]
push eax
mov byte [ebp - 4], 0x34
call fcn.004029b7
cmp eax, esi
pop ecx
jge 0x66d0e1
push eax
call fcn.00a6ef01
push esi
push 0xff
push 0xc0061508
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push esi
call fcn.0043286e
push esi
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push esi
mov byte [ebp - 4], 0x35
call fcn.0043283b
push esi
push ecx
lea eax, [ebp - 0x80]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call fcn.00429411
lea eax, [ebp - 0xe8]
push eax
mov byte [ebp - 4], 0x34
call fcn.0043e3a6
add esp, 0x28
push dword [eax]
lea ecx, [ebp - 0x10]
call fcn.00429919
lea ecx, [ebp - 0xe8]
call fcn.00415ceb
mov edi, 0xbe7330
push edi
lea ecx, [ebp - 0x278]
call fcn.0040318f
push edi
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0x36
call fcn.0040318f
mov eax, dword [ebp - 0x10]
cmp eax, esi
mov byte [ebp - 4], 0x37
jne 0x66d17b
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x10]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x278]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x258]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x20
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x110]
test eax, eax
jge 0x66d1b9
push 0xba0510
push dword [ebp - 0x14]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x258]
push eax
mov byte [ebp - 4], 0x36
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d1d4
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x278]
push eax
mov byte [ebp - 4], 0x34
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d1ef
push eax
call fcn.00a6ef01
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x21
call fcn.004027e9
cmp dword [ebp - 0xa8], 0
jne 0x66d2e6
mov esi, 0xbe7330
push esi
lea ecx, [ebp - 0x228]
call fcn.0040318f
push esi
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0x38
call fcn.0040318f
cmp dword [ebp - 0x10], 0
mov byte [ebp - 4], 0x39
jne 0x66d23d
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xd0]
push eax
call fcn.00439a78
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x3a
jne 0x66d261
push 0x80004003
call fcn.00a6ef01
mov eax, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x228]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x4c]
lea esi, [ebp - 0x148]
push dword [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x66d2a5
push 0xba0500
push dword [ebp - 0x14]
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0xd0]
call fcn.00415cc4
lea eax, [ebp - 0x148]
push eax
mov byte [ebp - 4], 0x38
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d2cb
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x228]
push eax
mov byte [ebp - 4], 0x21
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d2e6
push eax
call fcn.00a6ef01
xor edi, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x18], edi
mov esi, 0x31d
lea eax, [ebp - 0xb0]
push esi
push eax
mov byte [ebp - 4], 0x3e
call fcn.007a48d0
mov ecx, eax
call fcn.0040634c
mov eax, dword [eax]
push edi
lea ecx, [ebp - 0x24]
push ecx
push eax
mov byte [ebp - 4], 0x3f
call fcn.00447891
mov eax, dword [ebp - 0xb0]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x3e
je 0x66d33d
add eax, 0xfffffff4
push eax
call fcn.00403382
pop ecx
lea eax, [ebp - 0xdc]
push esi
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.0040634c
mov eax, dword [eax]
push edi
lea ecx, [ebp - 0x50]
push ecx
push eax
mov byte [ebp - 4], 0x40
call fcn.00447891
mov eax, dword [ebp - 0xdc]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x3e
je 0x66d37d
add eax, 0xfffffff4
push eax
call fcn.00403382
pop ecx
lea eax, [ebp - 0xb8]
push esi
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.0040634c
mov eax, dword [eax]
push edi
lea ecx, [ebp - 0x54]
push ecx
push eax
mov byte [ebp - 4], 0x41
call fcn.00447891
mov eax, dword [ebp - 0xb8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x3e
je 0x66d3bd
add eax, 0xfffffff4
push eax
call fcn.00403382
pop ecx
lea eax, [ebp - 0xd8]
push esi
push eax
call fcn.007a48d0
mov ecx, eax
call fcn.0040634c
mov eax, dword [eax]
push edi
lea ecx, [ebp - 0x18]
push ecx
push eax
mov byte [ebp - 4], 0x42
call fcn.00447891
mov eax, dword [ebp - 0xd8]
add esp, 0xc
cmp eax, edi
mov byte [ebp - 4], 0x3e
je 0x66d3fd
add eax, 0xfffffff4
push eax
call fcn.00403382
pop ecx
push 1
push dword [ebp - 0x50]
lea ecx, [ebp - 0x128]
call fcn.00411fe1
mov eax, dword [ebp - 0x54]
cmp eax, edi
mov byte [ebp - 4], 0x43
jne 0x66d425
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x128]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x64]
test eax, eax
jge 0x66d44f
push 0xba0500
push dword [ebp - 0x14]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x128]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d46a
push eax
call fcn.00a6ef01
mov esi, 0xbe7330
push esi
lea ecx, [ebp - 0x188]
call fcn.0040318f
push esi
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0x44
call fcn.0040318f
mov ecx, dword [ebp - 0x54]
test ecx, ecx
mov byte [ebp - 4], 0x45
jne 0x66d4a3
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x4c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x188]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2b8]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], edx
cdq
movsd dword es:[edi], dword [esi]
sub eax, edx
push 0
sar eax, 1
movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov dword [ebp - 0x3c], ecx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x66d4f0
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x2b8]
push eax
mov byte [ebp - 4], 0x44
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d50b
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x188]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d526
push eax
call fcn.00a6ef01
push 0xbe7330
lea ecx, [ebp - 0x248]
call fcn.0040318f
mov eax, dword [ebp - 0x50]
test eax, eax
mov byte [ebp - 4], 0x46
jne 0x66d54e
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
fild dword [ebp - 0x5c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x248]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x3c], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x66d583
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x248]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d59e
push eax
call fcn.00a6ef01
push 3
push 0x7d0
lea ecx, [ebp - 0x1a8]
call fcn.004031b5
mov eax, dword [ebp - 0x50]
test eax, eax
mov byte [ebp - 4], 0x47
jne 0x66d5c8
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
fldz
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1a8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x3c], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x66d5fc
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x1a8]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d617
push eax
call fcn.00a6ef01
cmp dword [ebp + 0x10], 4
je 0x66d883
cmp dword [ebp + 0x10], 5
je 0x66d883
push 3
push 0
lea ecx, [ebp - 0x1c8]
call fcn.004031b5
cmp dword [0xbe2788], 0
mov byte [ebp - 4], 0x48
jne 0x66d651
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [0xbe2788]
lea eax, [ebp - 0xe0]
push eax
call fcn.004371b1
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00411fe1
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x4a
jne 0x66d68b
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1c8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ecx + 0x258]
push esi
lea esi, [ecx + 0x320]
push esi
mov edx, dword [eax]
mov esi, 0xfffffed4
sub esi, ecx
push esi
mov esi, 0xfffffe70
sub esi, ecx
push esi
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2a8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x3c], eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x9c]
test eax, eax
jge 0x66d6e8
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x2a8]
push eax
mov byte [ebp - 4], 0x49
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d703
push eax
call fcn.00a6ef01
lea ecx, [ebp - 0xe0]
call fcn.00415cc4
lea eax, [ebp - 0x1c8]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d729
push eax
call fcn.00a6ef01
mov esi, 0xbe7330
push esi
lea ecx, [ebp - 0x1e8]
call fcn.0040318f
push esi
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 0x4b
call fcn.0040318f
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x4c
jne 0x66d762
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x24]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1e8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x268]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
push dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x3c], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x66d7a2
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x268]
push eax
mov byte [ebp - 4], 0x4b
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d7bd
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x1e8]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d7d8
push eax
call fcn.00a6ef01
push 1
push dword [ebp - 0x24]
lea ecx, [ebp - 0x298]
call fcn.00411fe1
cmp dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x4d
jne 0x66d7fc
push 0x80004003
call fcn.00a6ef01
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x298]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x64]
test eax, eax
jge 0x66d824
push 0xba0500
push ebx
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x298]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d83f
push eax
call fcn.00a6ef01
cmp dword [ebp - 0x18], 0
jne 0x66d84f
push 0x80004003
call fcn.00a6ef01
mov esi, dword [ebp - 0x18]
mov eax, dword [esi]
push 5
push dword [ebp - 0xc8]
push 0x64
push 0x64
push dword [ebp - 0x54]
push esi
call dword [eax + 0x98]
test eax, eax
jge 0x66dadd
push 0xba0500
push esi
push eax
call fcn.00a6ef0f
jmp 0x66dadd
mov ecx, dword [0xbdd6f4]
lea eax, [ebp - 0xa0]
push eax
call fcn.0048aec3
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x208]
call fcn.00411fe1
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x4f
jne 0x66d8bd
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x208]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x3c], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x64]
test eax, eax
jge 0x66d8e7
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x208]
push eax
mov byte [ebp - 4], 0x4e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d902
push eax
call fcn.00a6ef01
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x3e
call fcn.00415cc4
mov esi, 0xbe7330
push esi
lea ecx, [ebp - 0x138]
call fcn.0040318f
push esi
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0x50
call fcn.0040318f
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x51
jne 0x66d94a
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x18]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x138]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x288]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
push dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x3c], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x66d98a
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x288]
push eax
mov byte [ebp - 4], 0x50
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d9a5
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x138]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66d9c0
push eax
call fcn.00a6ef01
push 3
push 0
lea ecx, [ebp - 0x178]
call fcn.004031b5
mov ecx, dword [0xbdd6f4]
lea eax, [ebp - 0xa4]
push eax
mov byte [ebp - 4], 0x52
call fcn.0048aec3
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x158]
call fcn.00411fe1
mov eax, dword [ebp - 0x34]
cmp ebx, eax
mov byte [ebp - 4], 0x54
mov dword [ebp - 0x5c], ebx
jl 0x66da06
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
cmp eax, ecx
mov dword [ebp - 0x14], eax
jl 0x66da16
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x18], 0
jne 0x66da26
push 0x80004003
call fcn.00a6ef01
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x18]
push eax
call fcn.00a70b13
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x30]
push eax
call fcn.00a70b13
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x28]
push ecx
push ecx
mov edi, esp
push dword [ebp - 0x3c]
lea esi, [ebp - 0x178]
push eax
xor eax, eax
cmp dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x20]
setl al
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, dword [ebp - 0x5c]
movsd dword es:[edi], dword [esi]
push eax
xor eax, eax
cmp dword [ebp - 0x30], edx
movsd dword es:[edi], dword [esi]
setl al
lea esi, [ebp - 0x158]
add eax, dword [ebp - 0x14]
push eax
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x9c]
test eax, eax
jge 0x66da9c
push 0xba0500
push ebx
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x158]
push eax
mov byte [ebp - 4], 0x53
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66dab7
push eax
call fcn.00a6ef01
lea ecx, [ebp - 0xa4]
call fcn.00415cc4
lea eax, [ebp - 0x178]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66dadd
push eax
call fcn.00a6ef01
push 1
push dword [ebp - 0x18]
lea ecx, [ebp - 0x198]
call fcn.00411fe1
cmp dword [ebp - 0x10], 0
mov byte [ebp - 4], 0x55
jne 0x66db01
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x9c]
push eax
call fcn.0043fd8c
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x56
jne 0x66db25
push 0x80004003
call fcn.00a6ef01
mov ebx, dword [esi]
mov eax, dword [ebx]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x198]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x64]
test eax, eax
mov edi, 0xba0500
jge 0x66db4d
push edi
push ebx
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0x9c]
call fcn.00415cc4
lea eax, [ebp - 0x198]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66db73
push eax
call fcn.00a6ef01
cmp dword [ebp - 0x10], 0
mov ebx, 0x80004003
jne 0x66db90
push ebx
call fcn.00a6ef01
cmp dword [ebp - 0x10], 0
jne 0x66db90
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xb4]
push eax
call fcn.0043fd8c
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x57
jne 0x66dbb0
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
mov esi, dword [esi]
call fcn.0043fd38
push 0xfffffffffffffffe
pop ecx
cdq
idiv ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x6c]
test eax, eax
jge 0x66dbd3
push edi
push esi
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0x3e
call fcn.00415cc4
cmp dword [ebp - 0x10], 0
jne 0x66dbfa
push ebx
call fcn.00a6ef01
cmp dword [ebp - 0x10], 0
jne 0x66dbfa
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xbc]
push eax
call fcn.0043fd8c
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x58
jne 0x66dc1a
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
mov esi, dword [esi]
call fcn.0043fd62
push 0xfffffffffffffffe
pop ecx
cdq
idiv ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x74]
test eax, eax
jge 0x66dc3d
push edi
push esi
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x3e
call fcn.00415cc4
cmp dword [ebp + 0xc], 2
jne 0x66dcda
call fcn.00a70bad
cdq
mov ecx, 0xbb8
idiv ecx
push 3
lea ecx, [ebp - 0x1b8]
add edx, 0x12c
push edx
call fcn.004031b5
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x59
jne 0x66dc8b
push ebx
call fcn.00a6ef01
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
fldz
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1b8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x3c], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x66dcbf
push 0xba0500
push dword [ebp - 0x3c]
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x1b8]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66dcda
push eax
call fcn.00a6ef01
xor edi, edi
cmp dword [ebp - 0x10], edi
jne 0x66dce7
push ebx
call fcn.00a6ef01
mov esi, dword [ebp - 0x10]
mov eax, dword [esi]
push 0x1ffffff
push esi
call dword [eax + 0xe0]
cmp eax, edi
jge 0x66dd08
push 0xba0510
push esi
push eax
call fcn.00a6ef0f
push 0xbe7330
lea ecx, [ebp - 0x1f8]
call fcn.0040318f
cmp dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x5a
jne 0x66dd27
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
call fcn.0043715c
add eax, dword [ebp - 0xc4]
push 3
push eax
lea ecx, [ebp - 0x1d8]
call fcn.004031b5
mov eax, dword [ebp - 0x4c]
cmp eax, 0x64
mov byte [ebp - 4], 0x5b
jle 0x66dd58
mov dword [ebp - 0x14], 0x32
jmp 0x66dd64
add eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x2c]
sub eax, ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], edi
jne 0x66dd6f
push ebx
call fcn.00a6ef01
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.00414899
mov esi, eax
cmp dword [esi], edi
mov byte [ebp - 4], 0x5c
jne 0x66dd8b
push ebx
call fcn.00a6ef01
mov ebx, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1d8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0xff
push dword [ebp - 0x14]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x66ddcc
push 0xba0500
push ebx
push eax
call fcn.00a6ef0f
lea ecx, [ebp - 0x38]
call fcn.00415cc4
lea eax, [ebp - 0x1d8]
push eax
mov byte [ebp - 4], 0x5a
call fcn.004029b7
xor ebx, ebx
cmp eax, ebx
pop ecx
jge 0x66ddf1
push eax
call fcn.00a6ef01
lea eax, [ebp - 0x1f8]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004029b7
cmp eax, ebx
pop ecx
jge 0x66de0c
push eax
call fcn.00a6ef01
cmp dword [ebp + 0x10], ebx
jl 0x66dfc4
push 3
pop edi
cmp dword [ebp + 0x10], edi
jle 0x66df00
cmp dword [ebp + 0x10], 5
jg 0x66dfc4
push edi
push 0x10000000
lea ecx, [ebp - 0x238]
call fcn.004031b5
cmp dword [ebp - 0x18], ebx
mov byte [ebp - 4], 0x5f
jne 0x66de4f
push 0x80004003
call fcn.00a6ef01
call fcn.00a70bad
cdq
mov ecx, 0x7530
idiv ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x18]
lea eax, [edx + eax - 0x3a98]
cdq
idiv dword [ebp - 0x4c]
mov esi, eax
call fcn.0043715c
add esi, eax
push edi
push esi
lea ecx, [ebp - 0x218]
call fcn.004031b5
cmp dword [ebp - 0x18], ebx
mov byte [ebp - 4], 0x60
jne 0x66de96
push 0x80004003
call fcn.00a6ef01
sub esp, 0x10
mov edi, esp
mov ebx, dword [ebp - 0x18]
lea esi, [ebp - 0x238]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x34]
lea esi, [ebp - 0x218]
push dword [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x66ded6
push 0xba0500
push ebx
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x218]
push eax
mov byte [ebp - 4], 0x5f
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66def1
push eax
call fcn.00a6ef01
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0x238]
jmp 0x66dfb3
push edi
push 0x10000000
lea ecx, [ebp - 0x118]
call fcn.004031b5
cmp dword [ebp - 0x24], ebx
mov byte [ebp - 4], 0x5d
jne 0x66df24
push 0x80004003
call fcn.00a6ef01
mov ecx, dword [ebp - 0x24]
call fcn.0043715c
mov ecx, eax
mov eax, dword [ebp + 0x14]
cdq
idiv dword [ebp - 0x4c]
push edi
add ecx, eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.004031b5
cmp dword [ebp - 0x24], ebx
mov byte [ebp - 4], 0x5e
jne 0x66df54
push 0x80004003
call fcn.00a6ef01
sub esp, 0x10
mov edi, esp
mov ebx, dword [ebp - 0x24]
lea esi, [ebp - 0x118]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x34]
lea esi, [ebp - 0x7c]
push dword [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x66df91
push 0xba0500
push ebx
push eax
call fcn.00a6ef0f
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 4], 0x5d
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66dfa9
push eax
call fcn.00a6ef01
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0x118]
push eax
call fcn.004029b7
test eax, eax
pop ecx
jge 0x66dfc4
push eax
call fcn.00a6ef01
mov eax, dword [ebp - 0x84]
lea ecx, [eax + 0x64]
call fcn.004b6b0c
push dword [ebp - 0x10]
mov ecx, eax
call fcn.00429919
lea ecx, [ebp - 0x18]
call fcn.00415cc4
lea ecx, [ebp - 0x54]
call fcn.00415cc4
lea ecx, [ebp - 0x50]
call fcn.00415cc4
lea ecx, [ebp - 0x24]
call fcn.00415cc4
lea ecx, [ebp - 0x10]
call fcn.00415ceb
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x6c]
jl 0x66ca3b
lea ecx, [ebp - 0x1c]
call fcn.004027e9
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0041f006
lea ecx, [ebp - 0x60]
call fcn.00415cd1
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
test eax, eax
je 0x66e044
add eax, 0xfffffff4
push eax
call fcn.00403382
pop ecx
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x304]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10