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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xa8
mov ebp, ecx
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x90], eax
mov ebx, dword [esp + 0xc8]
mov edx, dword [ebp + 0x360]
mov dword [esp + 0x7c], edx
cmp edx, 1
je 0x6cc33a
xor ebx, ebx
xor esi, esi
xor al, al
mov dword [esp + 0x78], esi
mov byte [esp + 0x70], al
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x6cc360
mov edx, dword [esp + 0x90]
cmp eax, edx
jge 0x6cc360
xor dl, dl
mov byte [esp + 0x70], dl
jmp 0x6cc378
mov edx, dword [ebp + 0x370]
cmp edx, dword [ebp + 0x340]
je 0x6cc378
test edx, edx
je 0x6cc378
mov dl, 1
mov byte [esp + 0x70], dl
mov ecx, dword [ebp + 0x1a8]
test ecx, ecx
je 0x6cc388
xor dl, dl
mov byte [esp + 0x70], dl
cmp ecx, 2
je 0x6ccbb6
mov esi, dword [ebp + 0x35c]
xor dl, dl
test eax, eax
mov dword [esp + 0x74], esi
mov byte [esp + 0x84], dl
mov byte [ebp + 0x20], 0
je 0x6cc74e
mov edx, dword [esp + 0x90]
cmp eax, edx
jge 0x6cc74e
test ecx, ecx
je 0x6cc3d5
mov eax, 6
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
mov edx, dword [esp + 0xbc]
mov esi, dword [edx + 4]
cmp esi, 1
je 0x6cc3f6
mov eax, 6
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
mov byte [ebp + 0x20], 1
xor edx, edx
xor esi, esi
mov dword [esp + 0x84], edx
mov edx, dword [ebp + 0x33c]
cmp edx, 8
mov dword [esp + 0x80], esi
je 0x6cc6a4
cmp edx, 0x10
je 0x6cc5ed
cmp edx, 0x18
jne 0x6cc506
mov esi, dword [ebp + 0x1c]
lea edi, [esi + esi*2]
mov edx, dword [esp + 0x7c]
imul edi, edx
lea esi, [edx + edx*2]
mov dword [esp + 0x78], edi
lea ecx, [ebp + 0xd0]
mov dword [ebp + 0x234], 2
cdq
idiv esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], ecx
mov eax, dword [ebp + 0xd0]
call dword [eax + 0x24]
mov dword [ebp + 0xcc], 0
mov eax, dword [esp + 0x74]
lea edx, [eax + eax*2 + 0x60]
mov dword [esp + 0x7c], edx
mov esi, dword [ebp + 0xd0]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cc4b8
mov eax, dword [ebp + 0xd0]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x30
mov dword [ebp + 0xcc], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0xe4], eax
mov eax, dword [ebp + 0x360]
cmp eax, 2
je 0x6cd538
lea eax, [ebp + 0x100]
mov dword [esp + 0x80], eax
lea ecx, [ebp + 0xd0]
mov eax, dword [ebp + 0xd0]
call dword [eax + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
lea ecx, [eax + 8]
mov edx, dword [eax + 8]
call dword [edx + 0xc]
mov dword [esp + 0x80], eax
jmp 0x6cc6a4
cmp edx, 0x20
jne 0x6cc6a4
mov esi, dword [ebp + 0x1c]
add esi, esi
add esi, esi
mov edi, dword [esp + 0x7c]
imul esi, edi
add edi, edi
mov dword [esp + 0x78], esi
add edi, edi
mov dword [ebp + 0x234], 3
lea ecx, [ebp + 0x140]
cdq
idiv edi
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x140]
mov dword [esp + 0x84], ecx
call dword [eax + 0x24]
mov dword [ebp + 0x13c], 0
mov eax, dword [esp + 0x74]
lea edx, [eax*4 + 0x80]
mov dword [esp + 0x7c], edx
mov esi, dword [ebp + 0x140]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cc59f
mov eax, dword [ebp + 0x140]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x40
mov dword [ebp + 0x13c], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x154], eax
mov eax, dword [ebp + 0x360]
cmp eax, 2
je 0x6cd5af
lea eax, [ebp + 0x170]
mov dword [esp + 0x80], eax
lea ecx, [ebp + 0x140]
mov eax, dword [ebp + 0x140]
call dword [eax + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
lea ecx, [eax + 8]
mov edx, dword [eax + 8]
call dword [edx + 0xc]
mov dword [esp + 0x80], eax
jmp 0x6cc6a4
mov esi, dword [ebp + 0x1c]
add esi, esi
mov edi, dword [esp + 0x7c]
imul esi, edi
add edi, edi
mov dword [esp + 0x78], esi
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x234], 1
cdq
idiv edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], ecx
mov eax, dword [ebp + 0x60]
call dword [eax + 0x24]
mov dword [ebp + 0x5c], 0
mov eax, dword [esp + 0x74]
lea edx, [eax + eax + 0x40]
mov dword [esp + 0x7c], edx
mov esi, dword [ebp + 0x60]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cc661
mov eax, dword [ebp + 0x60]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x20
mov dword [ebp + 0x5c], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x360]
cmp eax, 2
je 0x6cd635
lea eax, [ebp + 0x90]
mov dword [esp + 0x80], eax
lea ecx, [ebp + 0x60]
mov eax, dword [ebp + 0x60]
call dword [eax + 0xc]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
lea ecx, [eax + 8]
mov edx, dword [eax + 8]
call dword [edx + 0xc]
mov dword [esp + 0x80], eax
mov esi, dword [0x84dd60]
test esi, esi
je 0x6cd626
mov eax, dword [0x84dd5c]
test eax, eax
je 0x6cc744
mov eax, dword [esp + 0x78]
add eax, dword [ebp + 0x54]
push 1
push dword [ebp + 0x14]
push eax
mov edx, dword [esp + 0xc8]
push dword [edx + 8]
push dword [0x7b3b24]
call esi
add esp, 0x14
mov eax, dword [ebp + 0x360]
cmp eax, 1
jne 0x6cc6f5
xor eax, eax
mov dword [esp + 0x80], eax
movzx ecx, byte [ebp + 0x18]
mov eax, dword [esp + 0x78]
add eax, dword [ebp + 0x54]
push 0
push 0xffffffffffffffff
push eax
push dword [ebp + 0x24]
mov edx, dword [esp + 0x84]
push edx
push 0x10
mov esi, dword [esp + 0x98]
push esi
mov edi, dword [esp + 0xa0]
push edi
push dword [ebp + 0x33c]
push ecx
push dword [0x7b3b24]
call dword [0x84dd5c]
add esp, 0x2c
mov al, byte [ebp + 0x20]
mov byte [esp + 0x84], al
jmp 0x6cc74e
mov al, byte [ebp + 0x20]
mov byte [esp + 0x84], al
mov edx, dword [ebp + 0x340]
mov esi, dword [ebp + 0x370]
cmp edx, esi
je 0x6cc84d
test esi, esi
je 0x6cc83d
mov al, byte [esp + 0x84]
test al, al
mov byte [esp + 0x84], al
jne 0x6cc81d
mov eax, dword [ebp + 0x1a8]
test eax, eax
jne 0x6cc81d
mov dword [esp + 0x58], edx
mov eax, dword [ebp + 0x35c]
shr eax, 0x1f
fild dword [esp + 0x58]
mov dword [esp + 0x58], esi
fild dword [esp + 0x58]
fdivp st(1)
fst qword [ebp + 0x350]
mov dword [ebp + 0x340], esi
fild dword [ebp + 0x35c]
fadd dword [eax*4 + 0x88a018]
fdivrp st(1)
fstp qword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
mov ecx, esi
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x6cc80b
mov edx, esi
neg ecx
add ecx, 0x41e
shld edx, eax, 0xb
or edx, 0x80000000
shr edx, cl
test esi, esi
mov dword [esp + 0x74], edx
jge 0x6cc811
mov eax, edx
neg eax
mov dword [esp + 0x74], eax
jmp 0x6cc811
xor eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x35c], eax
jmp 0x6cc85b
mov dword [esp + 0x58], edx
fild dword [esp + 0x58]
mov dword [esp + 0x58], esi
fild dword [esp + 0x58]
fdivp st(1)
fmul qword [ebp + 0x368]
fstp qword [ebp + 0x368]
jmp 0x6cc85b
mov al, byte [esp + 0x84]
mov byte [esp + 0x84], al
jmp 0x6cc85b
mov al, byte [esp + 0x84]
mov byte [esp + 0x84], al
mov al, byte [esp + 0x84]
test al, al
jne 0x6ce087
mov eax, dword [ebp + 0x1a8]
test eax, eax
je 0x6cc87d
mov eax, 0x1f400
mov dword [esp + 0x74], eax
mov al, byte [ebp + 0x34c]
test al, al
jne 0x6ccaf4
mov eax, dword [ebp + 0x33c]
cmp eax, 8
je 0x6cca40
cmp eax, 0x10
je 0x6cca40
cmp eax, 0x18
jne 0x6cc970
imul edx, ebx, 0x38
lea eax, [ebp + edx + 0xc8]
lea ecx, [eax + 8]
mov dword [esp + 0x80], edx
mov esi, dword [edx + ebp + 0xd0]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ecx
call dword [esi + 0x24]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
lea esi, [eax + eax*2 + 0x60]
mov dword [edx + ebp + 0xcc], 0
mov edi, dword [edx + ebp + 0xd0]
push 1
push esi
mov ecx, dword [esp + 0x8c]
call dword [edi + 0x1c]
test eax, eax
jne 0x6cc93b
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0xd0]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
add eax, 0x30
mov edx, dword [esp + 0x80]
mov dword [edx + ebp + 0xcc], eax
mov eax, dword [esp + 0x74]
mov dword [edx + ebp + 0xe4], eax
mov ecx, dword [esp + 0x7c]
add ecx, 8
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0xd0]
call dword [edx + 8]
movzx eax, al
test eax, eax
jne 0x6ccada
mov eax, 4
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
cmp eax, 0x20
jne 0x6ccada
imul edx, ebx, 0x38
lea eax, [ebp + edx + 0x138]
lea ecx, [eax + 8]
mov dword [esp + 0x80], edx
mov esi, dword [edx + ebp + 0x140]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ecx
call dword [esi + 0x24]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
lea esi, [eax*4 + 0x80]
mov dword [edx + ebp + 0x13c], 0
mov edi, dword [edx + ebp + 0x140]
push 1
push esi
mov ecx, dword [esp + 0x8c]
call dword [edi + 0x1c]
test eax, eax
jne 0x6cca0b
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0x140]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
add eax, 0x40
mov edx, dword [esp + 0x80]
mov dword [edx + ebp + 0x13c], eax
mov eax, dword [esp + 0x74]
mov dword [edx + ebp + 0x154], eax
mov ecx, dword [esp + 0x7c]
add ecx, 8
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0x140]
call dword [edx + 8]
movzx eax, al
test eax, eax
jne 0x6ccada
mov eax, 4
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
imul edx, ebx, 0x38
lea eax, [ebp + edx + 0x58]
lea ecx, [eax + 8]
mov dword [esp + 0x80], edx
mov esi, dword [edx + ebp + 0x60]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ecx
call dword [esi + 0x24]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
lea esi, [eax + eax + 0x40]
mov dword [edx + ebp + 0x5c], 0
mov edi, dword [edx + ebp + 0x60]
push 1
push esi
mov ecx, dword [esp + 0x8c]
call dword [edi + 0x1c]
test eax, eax
jne 0x6ccaba
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0x60]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
add eax, 0x20
mov edx, dword [esp + 0x80]
mov dword [edx + ebp + 0x5c], eax
mov eax, dword [esp + 0x74]
mov dword [edx + ebp + 0x74], eax
mov ecx, dword [esp + 0x7c]
add ecx, 8
mov eax, dword [esp + 0x80]
mov edx, dword [eax + ebp + 0x60]
call dword [edx + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov eax, dword [ebp + 0x360]
cmp eax, 2
je 0x6cd6ac
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
imul edx, ebx, 0x38
lea eax, [ebp + edx + 0x138]
lea ecx, [eax + 8]
mov dword [esp + 0x7c], edx
mov esi, dword [edx + ebp + 0x140]
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], ecx
call dword [esi + 0x24]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
lea esi, [eax*4 + 0x80]
mov dword [edx + ebp + 0x13c], 0
mov edi, dword [edx + ebp + 0x140]
mov dword [esp + 0x80], esi
push 1
push esi
mov ecx, dword [esp + 0x8c]
call dword [edi + 0x1c]
test eax, eax
jne 0x6ccb81
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + ebp + 0x140]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
add eax, 0x40
mov edx, dword [esp + 0x7c]
mov dword [edx + ebp + 0x13c], eax
mov eax, dword [esp + 0x74]
mov dword [edx + ebp + 0x154], eax
mov ecx, dword [esp + 0x78]
add ecx, 8
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + ebp + 0x140]
call dword [edx + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov eax, dword [ebp + 0x360]
cmp eax, 2
je 0x6ce3a4
mov ecx, dword [ebp + 0x1a8]
cmp ecx, 1
jne 0x6ccbca
mov ecx, 2
mov dword [ebp + 0x1a8], 2
cmp ecx, 2
je 0x6ce2c4
lea ecx, [esp + 0x30]
push 1
call fcn.006f1fb4
mov dword [esp + 0x30], 0x88a520
lea ecx, [esp + 0x30]
push 1
push 0x18060
call fcn.006f2104
test eax, eax
jne 0x6ccc24
xor esi, esi
mov dword [esp + 0x88], ebp
nop
lea esi, [esi]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
push esi
call dword [eax + 0x34]
inc esi
cmp esi, 0x18060
jb 0x6ccc08
mov ebp, dword [esp + 0x88]
xor esi, esi
mov al, byte [esp + 0x70]
imul edx, ebx, 0x38
mov dword [esp + 0x44], 0
lea edi, [ebp + edx + 0x138]
fld qword [0x88a000]
fstp qword [esp]
mov byte [esp + 0x74], al
lea eax, [ebp + edx + 0x58]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov bl, byte [esp + 0x74]
mov dword [esp + 0x88], ebp
mov eax, dword [esp + 0x90]
sub eax, dword [esp + 0x98]
test eax, eax
jle 0x6ce2b8
mov edx, 0x18000
cmp eax, 0x18000
mov ebp, edx
jg 0x6ccca1
mov ebp, eax
test bl, bl
je 0x6ccd78
mov eax, dword [esp + 0x98]
test eax, eax
jne 0x6ccd08
lea esi, [ebp + 0x30]
mov eax, dword [esp + 0x90]
cmp esi, eax
jl 0x6cccc4
mov esi, eax
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [edx + 0x38]
push 0x18060
push 0
push eax
call fcn.0079f340
add esp, 0xc
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
add eax, 0x30
push 0
push esi
push eax
call dword [edx + 0x1c]
jmp 0x6ccd63
lea esi, [ebp + 0x60]
lea edi, [eax + ebp + 0x30]
mov edx, dword [esp + 0x90]
cmp edx, edi
jg 0x6ccd38
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
push 0x18060
push 0
push eax
call fcn.0079f340
add esp, 0xc
lea esi, [ebp + 0x30]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
push 1
push 0xffffffffffffffa0
call dword [eax + 0xc]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
push 0
push esi
push eax
call dword [edx + 0x1c]
mov dword [esp + 0x78], ebp
jmp 0x6ccdc0
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
push 0
push ebp
push eax
call dword [edx + 0x1c]
mov dword [esp + 0x78], eax
cmp eax, ebp
jge 0x6ccdc0
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov edx, dword [esp + 0x78]
add eax, edx
sub ebp, edx
mov edi, eax
xor eax, eax
mov ecx, ebp
push ecx
shr ecx, 2
rep stosd dword es:[edi], eax
pop ecx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x6cde48
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x88]
add eax, dword [esp + 0x78]
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x33c]
cmp eax, 8
je 0x6cdae8
cmp eax, 0x10
je 0x6cd2d8
cmp eax, 0x18
jne 0x6cd148
mov al, byte [esp + 0xc4]
test al, al
je 0x6cce53
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
xor ebp, ebp
lea esi, [esi]
lea edi, [edi]
mov dl, byte [ebp + eax]
mov cl, byte [ebp + eax + 2]
mov byte [ebp + eax], cl
mov cl, byte [ebp + eax + 5]
mov byte [ebp + eax + 2], dl
mov dl, byte [ebp + eax + 3]
mov byte [ebp + eax + 3], cl
mov byte [ebp + eax + 5], dl
add ebp, 6
cmp ebp, 0x18060
jl 0x6cce28
test bl, bl
je 0x6cceb8
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
add esp, 0xffffffe4
add eax, 0x30
mov edx, dword [esp + 0x94]
mov dword [esp], eax
lea eax, [esp + 0x60]
lea ebp, [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
fld qword [ecx + 0x350]
fstp qword [esp + 0x10]
mov dword [esp + 0x18], esi
call fcn.006ce6d8
jmp 0x6cd101
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x88]
mov esi, dword [ecx + 0x360]
mov eax, 0xaaaaaaab
mov ebp, dword [esp + 0x78]
mul ebp
shr edx, 1
mov eax, edx
xor edx, edx
div esi
cmp esi, 1
je 0x6cd879
xor ebp, ebp
xor esi, esi
test eax, eax
jbe 0x6cd0fd
lea edi, [ecx + 0xd0]
lea edx, [ecx + 0x108]
mov dword [esp + 0x84], edx
lea edx, [ecx + 0x140]
lea ecx, [ecx + 0x178]
mov dword [esp + 0x78], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
lea esi, [esi]
mov eax, dword [esp + 0x88]
mov dl, byte [eax + 0x34c]
test dl, dl
je 0x6cd008
lea eax, [ebp + ebp*2]
movzx ecx, byte [eax + edi]
movzx ebx, byte [eax + edi + 1]
shl ebx, 8
or ecx, ebx
movzx edx, byte [eax + edi + 2]
shl edx, 0x10
or ecx, edx
shl ecx, 8
sar ecx, 8
mov ebx, esi
mov eax, dword [esp + 0x88]
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0x140]
mov ecx, dword [esp + 0x78]
fild dword [esp + 0x58]
fmul dword [0x889e14]
fstp qword [esp + 0x60]
add ebx, dword [esp + 0x44]
call dword [eax + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + ebx*4 + 0x40]
lea eax, [ebp + ebp*2]
add ebp, 2
movzx ecx, byte [eax + edi + 3]
movzx ebx, byte [eax + edi + 4]
shl ebx, 8
or ecx, ebx
movzx edx, byte [eax + edi + 5]
shl edx, 0x10
or ecx, edx
shl ecx, 8
sar ecx, 8
mov ebx, esi
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x178]
fild dword [esp + 0x58]
mov ecx, dword [esp + 0x8c]
fmul dword [0x889e14]
fstp qword [esp + 0x60]
add ebx, dword [esp + 0x44]
call dword [eax + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + ebx*4 + 0x40]
jmp 0x6cd0ec
lea edx, [ebp + ebp*2]
movzx ebx, byte [edx + edi]
movzx eax, byte [edx + edi + 1]
shl eax, 8
or ebx, eax
movzx eax, byte [edx + edi + 2]
shl eax, 0x10
or ebx, eax
shl ebx, 8
sar ebx, 8
mov eax, esi
mov ecx, dword [esp + 0x80]
add eax, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0xd0]
call dword [eax + 0xc]
mov edx, dword [esp + 0x6c]
lea ecx, [edx + edx*2]
lea edx, [ecx + eax + 0x30]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov byte [eax + ecx + 0x30], bl
mov eax, dword [esp + 8]
mov dl, byte [esp + 0xd]
mov byte [eax + 1], dl
mov edx, dword [esp + 8]
mov al, byte [esp + 0xe]
mov byte [edx + 2], al
lea edx, [ebp + ebp*2]
add ebp, 2
movzx ebx, byte [edx + edi + 3]
movzx eax, byte [edx + edi + 4]
shl eax, 8
or ebx, eax
movzx eax, byte [edx + edi + 5]
shl eax, 0x10
or ebx, eax
shl ebx, 8
sar ebx, 8
mov dword [esp + 0x6c], ebx
mov ebx, esi
mov eax, dword [esp + 0x88]
add ebx, dword [esp + 0x44]
mov eax, dword [eax + 0x108]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
lea ecx, [ebx + ebx*2]
lea ebx, [ecx + eax + 0x30]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov byte [eax + ecx + 0x30], dl
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x15]
mov byte [eax + 1], cl
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0x16]
mov byte [edx + 2], al
inc esi
mov eax, dword [esp + 0x70]
cmp esi, eax
jb 0x6ccf38
mov bl, byte [esp + 0x74]
add dword [esp + 0x44], esi
mov ebp, dword [esp + 0x88]
mov al, byte [ebp + 0x34c]
test al, al
je 0x6cd128
mov eax, 3
jmp 0x6cd12d
mov eax, 2
mov edx, ebp
mov dword [edx + 0x234], eax
jmp 0x6ccc7b
cmp eax, 0x20
jne 0x6ccc7b
mov al, byte [esp + 0xc4]
test al, al
je 0x6cd190
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
xor ebp, ebp
mov dl, byte [eax + ebp*4]
mov cl, byte [eax + ebp*4 + 3]
mov byte [eax + ebp*4], cl
mov cl, byte [eax + ebp*4 + 2]
mov byte [eax + ebp*4 + 3], dl
mov dl, byte [eax + ebp*4 + 1]
mov byte [eax + ebp*4 + 1], cl
mov byte [eax + ebp*4 + 2], dl
inc ebp
cmp ebp, 0x6018
jl 0x6cd169
test bl, bl
je 0x6cd1f8
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
add esp, 0xffffffe4
add eax, 0x30
mov edx, dword [esp + 0x94]
mov dword [esp], eax
lea eax, [esp + 0x60]
lea ebp, [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
fld qword [ecx + 0x350]
fstp qword [esp + 0x10]
mov dword [esp + 0x18], esi
call fcn.006ce438
jmp 0x6cd2bf
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x88]
mov ebp, dword [ecx + 0x360]
mov eax, dword [esp + 0x78]
shr eax, 2
xor edx, edx
div ebp
cmp ebp, 1
je 0x6cd9c8
xor esi, esi
xor ebp, ebp
test eax, eax
jbe 0x6cd2bb
mov edx, ecx
lea ecx, [edx + 0x140]
lea edx, [edx + 0x178]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
lea esi, [esi]
mov ebx, dword [esp + 0x80]
mov edi, dword [ebx + esi*4]
mov ebx, ebp
add ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x88]
mov eax, dword [edx + 0x140]
mov ecx, dword [esp + 0x78]
call dword [eax + 0xc]
mov dword [eax + ebx*4 + 0x40], edi
lea ebx, [esi + 1]
add esi, 2
mov edi, dword [esp + 0x80]
mov edi, dword [edi + ebx*4]
mov ebx, ebp
add ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x88]
mov eax, dword [edx + 0x178]
mov ecx, dword [esp + 0x6c]
call dword [eax + 0xc]
mov dword [eax + ebx*4 + 0x40], edi
inc ebp
mov eax, dword [esp + 0x70]
cmp ebp, eax
jb 0x6cd258
mov bl, byte [esp + 0x74]
add dword [esp + 0x44], ebp
mov eax, dword [esp + 0x88]
mov dword [eax + 0x234], 3
jmp 0x6ccc7b
mov al, byte [esp + 0xc4]
test al, al
je 0x6cd321
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
xor ebp, ebp
nop
lea esi, [esi]
mov dl, byte [eax + ebp*2]
mov cl, byte [eax + ebp*2 + 1]
mov byte [eax + ebp*2], cl
mov cl, byte [eax + ebp*2 + 3]
mov byte [eax + ebp*2 + 1], dl
mov dl, byte [eax + ebp*2 + 2]
mov byte [eax + ebp*2 + 2], cl
mov byte [eax + ebp*2 + 3], dl
add ebp, 2
cmp ebp, 0xc030
jl 0x6cd2f8
test bl, bl
je 0x6cd388
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
add esp, 0xffffffe4
add eax, 0x30
mov edx, dword [esp + 0x94]
mov dword [esp], eax
lea eax, [esp + 0x60]
lea ebp, [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
fld qword [ecx + 0x350]
fstp qword [esp + 0x10]
mov dword [esp + 0x18], esi
call fcn.006cedd8
jmp 0x6cd4fa
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x88]
mov ebp, dword [ecx + 0x360]
mov eax, dword [esp + 0x78]
shr eax, 1
xor edx, edx
div ebp
cmp ebp, 1
je 0x6cda28
xor esi, esi
xor ebp, ebp
test eax, eax
jbe 0x6cd4f6
lea edx, [ecx + 0x60]
lea edi, [ecx + 0x140]
mov dword [esp + 0x84], edx
lea edx, [ecx + 0x98]
lea ecx, [ecx + 0x178]
mov dword [esp + 0x80], edi
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov al, byte [ebx + 0x34c]
test al, al
je 0x6cd488
mov edi, dword [esp + 0x7c]
movsx edx, word [edi + esi*2]
mov edi, ebp
mov dword [esp + 0x58], edx
mov eax, dword [ebx + 0x140]
mov ecx, dword [esp + 0x80]
fild dword [esp + 0x58]
fmul dword [0x889e10]
fstp qword [esp + 0x60]
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
fld qword [esp + 0x60]
mov ecx, dword [esp + 0x78]
fstp dword [eax + edi*4 + 0x40]
lea edi, [esi + 1]
add esi, 2
mov eax, dword [esp + 0x7c]
movsx edx, word [eax + edi*2]
mov edi, ebp
mov dword [esp + 0x58], edx
mov eax, dword [ebx + 0x178]
fild dword [esp + 0x58]
fmul dword [0x889e10]
fstp qword [esp + 0x60]
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + edi*4 + 0x40]
jmp 0x6cd4de
mov edi, dword [esp + 0x7c]
movzx edx, word [edi + esi*2]
mov edi, ebp
mov dword [esp + 0x70], edx
mov eax, dword [ebx + 0x60]
mov ecx, dword [esp + 0x84]
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov word [eax + edi*2 + 0x20], dx
lea edx, [esi + 1]
add esi, 2
mov eax, dword [esp + 0x7c]
movzx edi, word [eax + edx*2]
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x70], edi
mov edi, ebp
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
mov edx, dword [esp + 0x70]
mov word [eax + edi*2 + 0x20], dx
inc ebp
mov eax, dword [esp + 0x68]
cmp ebp, eax
jb 0x6cd3f9
mov dword [esp + 0x88], ebx
mov bl, byte [esp + 0x74]
add dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x88]
mov al, byte [ebp + 0x34c]
test al, al
je 0x6cd518
mov eax, 3
jmp 0x6cd51d
mov eax, 1
mov edx, ebp
mov dword [edx + 0x234], eax
jmp 0x6ccc7b
lea eax, [ebp + 0x100]
lea ecx, [ebp + 0x108]
mov edx, dword [ebp + 0x108]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
call dword [edx + 0x24]
mov dword [ebp + 0x104], 0
mov edx, dword [ebp + 0x108]
push 1
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [esp + 0x8c]
call dword [edx + 0x1c]
test eax, eax
jne 0x6cc4d4
mov eax, dword [ebp + 0x108]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x30
mov dword [ebp + 0x104], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x11c], eax
jmp 0x6cc4d4
lea eax, [ebp + 0x170]
lea ecx, [ebp + 0x178]
mov edx, dword [ebp + 0x178]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
call dword [edx + 0x24]
mov dword [ebp + 0x174], 0
mov edx, dword [ebp + 0x178]
push 1
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [esp + 0x8c]
call dword [edx + 0x1c]
test eax, eax
jne 0x6cc5bb
mov eax, dword [ebp + 0x178]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x40
mov dword [ebp + 0x174], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x18c], eax
jmp 0x6cc5bb
mov al, byte [ebp + 0x20]
mov byte [esp + 0x84], al
jmp 0x6cc74e
lea eax, [ebp + 0x90]
lea ecx, [ebp + 0x98]
mov edx, dword [ebp + 0x98]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
call dword [edx + 0x24]
mov dword [ebp + 0x94], 0
mov edx, dword [ebp + 0x98]
push 1
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [esp + 0x8c]
call dword [edx + 0x1c]
test eax, eax
jne 0x6cc67d
mov eax, dword [ebp + 0x98]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x20
mov dword [ebp + 0x94], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0xac], eax
jmp 0x6cc67d
mov eax, dword [ebp + 0x33c]
cmp eax, 8
je 0x6cd7f2
cmp eax, 0x10
je 0x6cd7f2
cmp eax, 0x18
jne 0x6cd754
lea ecx, [ebp + 0x108]
mov eax, dword [ebp + 0x108]
mov dword [esp + 0x84], ecx
call dword [eax + 0x24]
mov dword [ebp + 0x104], 0
mov eax, dword [esp + 0x74]
lea edx, [eax + eax*2 + 0x60]
mov esi, dword [ebp + 0x108]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cd72f
mov eax, dword [ebp + 0x108]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x30
mov dword [ebp + 0x104], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x11c], eax
lea ecx, [ebp + 0x108]
mov eax, dword [ebp + 0x108]
call dword [eax + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
cmp eax, 0x20
jne 0x6cd7e7
lea ecx, [ebp + 0x178]
mov eax, dword [ebp + 0x178]
mov dword [esp + 0x84], ecx
call dword [eax + 0x24]
mov dword [ebp + 0x174], 0
mov eax, dword [esp + 0x74]
lea edx, [eax*4 + 0x80]
mov esi, dword [ebp + 0x178]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cd7c2
mov eax, dword [ebp + 0x178]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x40
mov dword [ebp + 0x174], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x18c], eax
lea ecx, [ebp + 0x178]
mov eax, dword [ebp + 0x178]
call dword [eax + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
lea ecx, [ebp + 0x98]
mov eax, dword [ebp + 0x98]
mov dword [esp + 0x84], ecx
call dword [eax + 0x24]
mov dword [ebp + 0x94], 0
mov eax, dword [esp + 0x74]
lea edx, [eax + eax + 0x40]
mov esi, dword [ebp + 0x98]
push 1
push edx
mov ecx, dword [esp + 0x8c]
call dword [esi + 0x1c]
test eax, eax
jne 0x6cd854
mov eax, dword [ebp + 0x98]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x20
mov dword [ebp + 0x94], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0xac], eax
lea ecx, [ebp + 0x98]
mov eax, dword [ebp + 0x98]
call dword [eax + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
xor esi, esi
test eax, eax
jbe 0x6cd0fd
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx + 8]
lea ebp, [esi + esi*2]
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
mov esi, esi
lea edi, [edi]
mov edi, dword [esp + 0x88]
mov al, byte [edi + 0x34c]
test al, al
je 0x6cd928
movzx edx, byte [ebp + ebx]
movzx edi, byte [ebp + ebx + 1]
shl edi, 8
or edx, edi
movzx eax, byte [ebp + ebx + 2]
shl eax, 0x10
or edx, eax
shl edx, 8
sar edx, 8
mov dword [esp + 0x58], edx
mov edi, esi
mov eax, dword [esp + 0xa4]
fild dword [esp + 0x58]
mov edx, dword [esp + 0x88]
mov eax, dword [eax + edx + 0x140]
fmul dword [0x889e14]
mov ecx, dword [esp + 0x8c]
fstp qword [esp + 0x60]
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + edi*4 + 0x40]
jmp 0x6cd9a3
movzx eax, byte [ebp + ebx]
movzx edi, byte [ebp + ebx + 1]
shl edi, 8
or eax, edi
movzx edx, byte [ebp + ebx + 2]
shl edx, 0x10
or eax, edx
shl eax, 8
sar eax, 8
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x88]
lea ecx, [edx + eax + 0xd0]
mov edi, esi
mov eax, dword [eax + edx + 0xd0]
add edi, dword [esp + 0x44]
call dword [eax + 0xc]
lea ecx, [edi + edi*2]
lea edi, [ecx + eax + 0x30]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
mov byte [eax + ecx + 0x30], dl
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x1d]
mov byte [eax + 1], cl
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x1e]
mov byte [edx + 2], al
add ebp, 3
inc esi
mov eax, dword [esp + 0x70]
cmp esi, eax
jb 0x6cd8a8
mov bl, byte [esp + 0x74]
jmp 0x6cd0fd
xor ebp, ebp
test eax, eax
jbe 0x6cd2bb
mov edx, dword [esp + 0xa0]
lea edx, [edx + 8]
mov edi, dword [esp + 0x80]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
mov esi, dword [edi + ebp*4]
mov ebx, dword [esp + 0x44]
add ebx, ebp
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x88]
mov eax, dword [eax + edx + 0x140]
mov ecx, dword [esp + 0x6c]
call dword [eax + 0xc]
mov dword [eax + ebx*4 + 0x40], esi
inc ebp
mov eax, dword [esp + 0x70]
cmp ebp, eax
jb 0x6cd9eb
mov bl, byte [esp + 0x74]
jmp 0x6cd2bb
xor ebp, ebp
test eax, eax
jbe 0x6cd4f6
mov edx, dword [esp + 0x9c]
lea edx, [edx + 8]
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx + 8]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov al, byte [ebx + 0x34c]
test al, al
je 0x6cdaa8
mov edi, dword [esp + 0x7c]
movsx esi, word [edi + ebp*2]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x44]
add esi, ebp
fild dword [esp + 0x58]
mov eax, dword [edx + ebx + 0x140]
mov ecx, dword [esp + 0x70]
fmul dword [0x889e10]
fstp qword [esp + 0x60]
call dword [eax + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + esi*4 + 0x40]
jmp 0x6cdacd
mov esi, dword [esp + 0x7c]
movzx edi, word [esi + ebp*2]
mov esi, dword [esp + 0x44]
add esi, ebp
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + ebx + 0x60]
mov ecx, dword [esp + 0x6c]
call dword [eax + 0xc]
mov word [eax + esi*2 + 0x20], di
inc ebp
mov eax, dword [esp + 0x68]
cmp ebp, eax
jb 0x6cda59
mov dword [esp + 0x88], ebx
mov bl, byte [esp + 0x74]
jmp 0x6cd4f6
test bl, bl
je 0x6cdb58
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
add esp, 0xffffffe0
add eax, 0x30
lea ebp, [esp + 0x64]
mov dword [esp], eax
mov esi, dword [esp + 0x98]
lea edi, [esp + 0x20]
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0xa8]
mov al, byte [esp + 0xe4]
mov dword [esp + 8], esi
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xc], edi
fld qword [ecx + 0x350]
fstp qword [esp + 0x10]
mov byte [esp + 0x18], al
mov dword [esp + 0x1c], edx
call fcn.006cf378
jmp 0x6cdd17
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
call dword [eax + 0x38]
mov esi, eax
mov ecx, dword [esp + 0x88]
mov ebp, dword [ecx + 0x360]
mov eax, dword [esp + 0x78]
xor edx, edx
div ebp
cmp ebp, 1
je 0x6cdd58
xor ecx, ecx
xor ebp, ebp
test eax, eax
jbe 0x6cdd13
mov edx, dword [esp + 0x88]
lea edi, [edx + 0x60]
mov dword [esp + 0x84], edi
lea edi, [edx + 0x98]
mov dword [esp + 0x80], edi
lea edi, [edx + 0x140]
lea edx, [edx + 0x178]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x70], eax
nop
lea esi, [esi]
mov al, byte [esp + 0xc4]
test al, al
je 0x6cdc08
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x8c]
movsx edi, byte [eax + ecx]
lea edx, [eax + 1]
add eax, 2
movsx ebx, byte [edx + ecx]
mov dword [esp + 0x8c], eax
jmp 0x6cdc2e
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x8c]
movzx edi, byte [eax + ecx]
add edi, 0xffffff80
lea edx, [eax + 1]
add eax, 2
mov dword [esp + 0x8c], eax
movzx ebx, byte [edx + ecx]
add ebx, 0xffffff80
mov esi, dword [esp + 0x88]
mov al, byte [esi + 0x34c]
test al, al
je 0x6cdcb8
mov esi, ebp
mov eax, dword [esp + 0x88]
mov edx, dword [eax + 0x140]
add esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x58], edi
fild dword [esp + 0x58]
fmul dword [0x88a010]
fstp qword [esp + 0x60]
call dword [edx + 0xc]
fld qword [esp + 0x60]
mov ecx, dword [esp + 0x78]
fstp dword [eax + esi*4 + 0x40]
mov esi, ebp
mov eax, dword [esp + 0x88]
add esi, dword [esp + 0x44]
mov edx, dword [eax + 0x178]
mov dword [esp + 0x58], ebx
fild dword [esp + 0x58]
fmul dword [0x88a010]
fstp qword [esp + 0x60]
call dword [edx + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + esi*4 + 0x40]
jmp 0x6cdd02
mov eax, ebp
shl edi, 8
mov edx, esi
add eax, dword [esp + 0x44]
mov esi, dword [edx + 0x60]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], eax
call dword [esi + 0xc]
mov esi, dword [esp + 0x68]
shl ebx, 8
mov ecx, dword [esp + 0x80]
mov word [eax + esi*2 + 0x20], di
mov esi, ebp
mov eax, dword [esp + 0x88]
add esi, dword [esp + 0x44]
mov edx, dword [eax + 0x98]
call dword [edx + 0xc]
mov word [eax + esi*2 + 0x20], bx
inc ebp
mov eax, dword [esp + 0x70]
cmp ebp, eax
jb 0x6cdbd8
mov bl, byte [esp + 0x74]
add dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x88]
mov al, byte [ebp + 0x34c]
test al, al
je 0x6cdd38
mov eax, 3
jmp 0x6cdd3d
mov eax, 1
mov edx, ebp
mov dword [edx + 0x234], eax
jmp 0x6ccc7b
xor ebp, ebp
test eax, eax
jbe 0x6cdd13
mov edx, dword [esp + 0x9c]
lea edi, [edx + 8]
mov ecx, dword [esp + 0xa0]
lea edx, [ecx + 8]
add esi, ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x70], eax
mov esi, esi
mov dl, byte [esp + 0xc4]
test dl, dl
je 0x6cdd98
movsx ebx, byte [esi]
jmp 0x6cdd9e
movzx ebx, byte [esi]
add ebx, 0xffffff80
mov edi, dword [esp + 0x88]
mov dl, byte [edi + 0x34c]
test dl, dl
je 0x6cddf8
mov edi, ebp
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x8c]
add edi, dword [esp + 0x44]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x88]
mov edx, dword [edx + ebx + 0x140]
fild dword [esp + 0x58]
fmul dword [0x88a010]
fstp qword [esp + 0x60]
call dword [edx + 0xc]
fld qword [esp + 0x60]
fstp dword [eax + edi*4 + 0x40]
jmp 0x6cde22
mov edi, ebp
shl ebx, 8
mov edx, dword [esp + 0xa4]
add edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x88]
mov edx, dword [edx + ecx + 0x60]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
mov word [eax + edi*2 + 0x20], bx
inc esi
inc ebp
mov edx, dword [esp + 0x70]
cmp ebp, edx
jb 0x6cdd88
mov bl, byte [esp + 0x74]
jmp 0x6cdd13
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x44]
cmp eax, dword [ebp + 0x35c]
jge 0x6cde61
mov dword [ebp + 0x35c], eax
xor esi, esi
mov edx, dword [ebp + 0x360]
test edx, edx
jle 0x6ce011
mov eax, dword [ebp + 0x234]
cmp eax, 1
je 0x6ce096
cmp eax, 2
jne 0x6cdf58
imul edx, esi, 0x38
lea edi, [ebp + edx + 0xc8]
mov eax, dword [ebp + 0x35c]
mov dword [esp + 0x84], edx
lea ebx, [eax + eax*2]
lea ecx, [edi + 8]
mov dword [esp + 0x80], ebx
mov eax, dword [edx + ebp + 0xd0]
call dword [eax + 0xc]
mov edx, ebx
movzx ebx, byte [eax + edx + 0x2d]
movzx ecx, byte [eax + edx + 0x2e]
shl ecx, 8
or ebx, ecx
movzx eax, byte [eax + edx + 0x2f]
shl eax, 0x10
or ebx, eax
shl ebx, 8
sar ebx, 8
xor edx, edx
lea eax, [edi + 8]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], esi
mov esi, edx
jmp 0x6cdefc
mov ebx, dword [esp + 0x48]
mov edi, esi
mov edx, dword [esp + 0x84]
mov eax, dword [edx + ebp + 0xd0]
add edi, dword [ebp + 0x35c]
mov ecx, dword [esp + 0x80]
call dword [eax + 0xc]
lea edx, [edi + edi*2]
lea ecx, [edx + eax + 0x30]
inc esi
mov dword [esp + 0x20], ecx
cmp esi, 8
mov dword [esp + 0x24], ebx
mov byte [eax + edx + 0x30], bl
mov edx, dword [esp + 0x20]
mov cl, byte [esp + 0x25]
mov byte [edx + 1], cl
mov edi, dword [esp + 0x20]
mov al, byte [esp + 0x26]
mov byte [edi + 2], al
jl 0x6cdef8
jmp 0x6ce118
cmp eax, 3
jne 0x6ce008
imul ebx, esi, 0x38
lea edi, [ebp + ebx + 0x138]
mov eax, dword [ebp + 0x35c]
dec eax
mov edx, 0xfffffff0
cmp eax, 0xfffffff0
jl 0x6cdf7e
mov edx, eax
lea ecx, [edi + 8]
mov eax, dword [ebx + ebp + 0x140]
mov dword [esp + 0x80], edx
call dword [eax + 0xc]
mov edx, dword [esp + 0x80]
mov edx, dword [eax + edx*4 + 0x40]
xor ecx, ecx
mov dword [esp + 0x48], edx
lea eax, [edi + 8]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ebx
mov ebx, ecx
mov dword [esp + 0x78], esi
mov esi, edx
jmp 0x6cdfcc
mov esi, dword [esp + 0x48]
mov edi, ebx
mov edx, dword [esp + 0x84]
mov eax, dword [edx + ebp + 0x140]
add edi, dword [ebp + 0x35c]
mov ecx, dword [esp + 0x80]
call dword [eax + 0xc]
mov dword [eax + edi*4 + 0x40], esi
inc ebx
cmp ebx, 8
jl 0x6cdfc8
jmp 0x6ce1d8
inc esi
cmp esi, edx
jl 0x6cde71
mov edx, 0x88a520
mov al, byte [esp + 0x40]
test al, al
je 0x6ce071
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x30]
call dword [0x88a528]
movzx eax, al
test eax, eax
je 0x6ce064
xor ebx, ebx
lea ecx, [esp + 0x30]
mov eax, dword [esp + 0x30]
call dword [eax + 0x30]
test eax, eax
jbe 0x6ce064
lea esi, [esi]
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x30]
push ebx
call dword [eax + 0x34]
inc ebx
lea ecx, [esp + 0x30]
mov eax, dword [esp + 0x30]
call dword [eax + 0x30]
cmp ebx, eax
jb 0x6ce048
lea ecx, [esp + 0x30]
call fcn.006f1f24
mov al, byte [esp + 0x40]
mov edx, 0x86a140
test al, al
je 0x6ce087
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x30]
call fcn.006f1f24
xor eax, eax
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10
imul ebx, esi, 0x38
lea edi, [ebp + ebx + 0x58]
mov edx, dword [ebp + 0x35c]
mov dword [esp + 0x84], edx
lea ecx, [edi + 8]
mov eax, dword [ebx + ebp + 0x60]
call dword [eax + 0xc]
mov edx, dword [esp + 0x84]
movsx edx, word [eax + edx*2 + 0x1e]
xor ecx, ecx
mov dword [esp + 0x48], edx
lea eax, [edi + 8]
mov dword [esp + 0x80], edi
mov edi, edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], esi
mov ebx, ecx
jmp 0x6ce0ec
mov edi, dword [esp + 0x48]
mov esi, ebx
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + ebp + 0x60]
add esi, dword [ebp + 0x35c]
mov ecx, dword [esp + 0x84]
call dword [edx + 0xc]
mov word [eax + esi*2 + 0x20], di
inc ebx
cmp ebx, 8
jl 0x6ce0e8
jmp 0x6ce248
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
lea ecx, [edi + 8]
mov edx, dword [esp + 0x84]
mov eax, dword [edx + ebp + 0xd0]
call dword [eax + 0xc]
movzx ebx, byte [eax + 0x30]
movzx edx, byte [eax + 0x31]
shl edx, 8
or ebx, edx
movzx eax, byte [eax + 0x32]
shl eax, 0x10
or ebx, eax
shl ebx, 8
sar ebx, 8
mov dword [esp + 0x48], ebx
add edi, 8
xor eax, eax
mov edx, 0xfffffffd
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], esi
mov edi, eax
mov esi, edx
jmp 0x6ce17c
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
mov eax, dword [edx + ebp + 0xd0]
mov ecx, dword [esp + 0x7c]
call dword [eax + 0xc]
lea edx, [esi + eax + 0x30]
add esi, 0xfffffffd
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov byte [eax + edi + 0x2d], bl
mov ecx, dword [esp + 0x28]
mov bl, byte [esp + 0x2d]
add edi, 0xfffffffd
mov byte [ecx + 1], bl
mov edx, dword [esp + 0x28]
mov al, byte [esp + 0x2e]
mov byte [edx + 2], al
cmp esi, 0xffffffe5
jg 0x6ce178
mov esi, dword [esp + 0x78]
mov edx, dword [ebp + 0x360]
jmp 0x6ce008
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
lea ecx, [edi + 8]
mov eax, dword [ebx + ebp + 0x140]
call dword [eax + 0xc]
mov eax, dword [eax + 0x40]
add edi, 8
xor edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], esi
mov edi, eax
mov esi, ebx
mov ebx, edx
jmp 0x6ce21c
mov edi, dword [esp + 0x48]
mov eax, dword [esi + ebp + 0x140]
mov ecx, dword [esp + 0x7c]
call dword [eax + 0xc]
mov dword [eax + ebx + 0x3c], edi
add ebx, 0xfffffffc
cmp ebx, 0xffffffe0
jg 0x6ce218
mov esi, dword [esp + 0x78]
mov edx, dword [ebp + 0x360]
jmp 0x6ce008
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
lea ecx, [edi + 8]
mov eax, dword [ebx + ebp + 0x60]
call dword [eax + 0xc]
movsx eax, word [eax + 0x20]
add edi, 8
xor edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x78], esi
mov edi, eax
mov esi, ebx
mov ebx, edx
jmp 0x6ce28c
mov edi, dword [esp + 0x48]
mov eax, dword [esi + ebp + 0x60]
mov ecx, dword [esp + 0x80]
call dword [eax + 0xc]
mov word [eax + ebx + 0x1e], di
add ebx, 0xfffffffe
cmp ebx, 0xfffffff0
jg 0x6ce288
mov esi, dword [esp + 0x78]
mov edx, dword [ebp + 0x360]
jmp 0x6ce008
mov ebp, dword [esp + 0x88]
jmp 0x6cde4f
mov esi, dword [ebp + 0x33c]
sar esi, 2
shr esi, 0x1d
add esi, dword [ebp + 0x33c]
sar esi, 3
mov ecx, dword [esp + 0xbc]
imul esi, dword [ebp + 0x1ac]
mov edx, dword [ecx]
imul esi, dword [ebp + 0x360]
mov eax, esi
add eax, dword [ebp + 0x54]
push 0
push eax
call dword [edx + 0xc]
mov eax, dword [ebp + 0x33c]
sar eax, 2
shr eax, 0x1d
add eax, dword [ebp + 0x33c]
sar eax, 3
imul edi, eax, 0x1f400
imul edi, dword [ebp + 0x360]
mov edx, dword [esp + 0x90]
cmp edi, edx
jl 0x6ce32e
mov eax, edx
test eax, eax
jne 0x6ce335
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov edx, dword [esp + 0x90]
lea edi, [esi + edx]
cmp eax, edi
jge 0x6ce373
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov dword [esp + 0x90], eax
sub eax, esi
test eax, eax
mov dword [esp + 0x90], eax
jl 0x6ce425
mov esi, dword [ebp + 0x33c]
sar esi, 2
shr esi, 0x1d
add esi, dword [ebp + 0x33c]
sar esi, 3
mov eax, dword [esp + 0x90]
imul esi, dword [ebp + 0x360]
cdq
idiv esi
mov dword [ebp + 0x35c], eax
jmp 0x6ccbd3
lea ecx, [ebp + 0x178]
mov eax, dword [ebp + 0x178]
mov dword [esp + 0x84], ecx
call dword [eax + 0x24]
mov dword [ebp + 0x174], 0
mov edx, dword [ebp + 0x178]
push 1
mov eax, esi
push eax
mov ecx, dword [esp + 0x8c]
call dword [edx + 0x1c]
test eax, eax
jne 0x6ce400
mov eax, dword [ebp + 0x178]
mov ecx, dword [esp + 0x84]
call dword [eax + 0xc]
add eax, 0x40
mov dword [ebp + 0x174], eax
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x18c], eax
lea ecx, [ebp + 0x178]
mov eax, dword [ebp + 0x178]
call dword [eax + 8]
movzx eax, al
test eax, eax
je 0x6cca2e
mov ecx, dword [ebp + 0x1a8]
jmp 0x6ccbb6
mov eax, 1
add esp, 0xa8
pop ebx
pop ebp
pop esi
pop edi
ret 0x10