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

Disassembly:
mov ecx, dword [0x9ec7ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xb8]
cmp eax, dword [ecx + 8]
jbe 0x66a29a
sub esp, 0x138
mov ebx, dword [esp + 0x13c]
cmp dword [ebx], 0x5fffffff
jl 0x668877
xor eax, eax
jmp 0x66a289
mov ecx, dword [esp + 0x148]
mov ebp, dword [esp + 0x140]
mov dword [ebp], ecx
cmp ecx, 0xa
jl 0x66891e
mov dword [esp + 0x48], 0
mov ebx, dword [esp + 0x144]
movzx edx, byte [ebx]
movzx esi, byte [ebx + 1]
mov edi, esi
shl esi, 8
or edx, esi
shr edi, 0x18
movzx esi, byte [ebx + 2]
mov dword [esp + 0xdc], esi
shr esi, 0x10
or esi, edi
mov edi, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x10
or ebp, edx
movzx edx, byte [ebx + 3]
mov dword [esp + 0xdc], edx
shr edx, 8
or edx, esi
mov esi, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x18
movzx eax, byte [ebx + 4]
or eax, edx
movzx edx, byte [ebx + 5]
shl edx, 8
or eax, edx
movzx edx, byte [ebx + 6]
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + 7]
shl edx, 0x18
lea ebx, [ecx - 8]
mov dword [esp + 0x38], ebx
nop
mov ebx, dword [edi + 0x64]
nop
or esi, ebp
or eax, edx
xor edx, edx
jmp 0x66896b
mov dword [ebp + 0x54], ecx
mov edx, dword [ebp + 0xc]
cmp ecx, edx
ja 0x668950
mov dword [ebp + 8], ecx
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x144]
cmp edx, eax
je 0x668949
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00468df0
add esp, 0x138
ret
call fcn.00468500
mov edx, eax
mov esi, ebx
mov eax, edi
mov edi, dword [esp + 0x140]
mov ebx, ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x13c]
jmp 0x668f8f
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc8]
jmp 0x66898f
mov ebp, dword [esp + 0x3c]
lea edx, [ebp + 1]
lea ebx, [edx + 4]
mov ebp, edx
sub edx, ecx
mov edi, ebp
mov ebp, dword [esp + 0x148]
cmp ebp, ebx
jb 0x669c66
mov ebp, dword [esp + 0x14c]
sub ebp, edi
mov dword [esp + 0xc8], ebp
lea esi, [ebp - 4]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
lea esi, [ecx + 4]
mov ebp, dword [esp + 0x144]
add ebx, ebp
mov dword [esp + 0x124], ebx
mov ebx, dword [esp + 0x148]
sub ebx, edi
mov ebp, dword [esp + 0x148]
cmp ebp, esi
jb 0x669c5d
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xb8], edi
mov dword [esp + 0x28], ecx
lea edx, [ebx - 4]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x14c]
sub ebx, ecx
mov dword [esp + 0xb4], ebx
sub ebp, ecx
mov dword [esp + 0xb0], ebp
lea ecx, [ebx - 4]
neg ecx
sar ecx, 0x1f
and esi, ecx
mov ecx, edx
and edx, 0x7ffffff8
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 0x144]
add esi, ebx
lea ebx, [ebp - 4]
mov dword [esp + 0x84], ebx
lea eax, [edx + 4]
mov dword [esp + 0x54], eax
mov dword [esp + 0xf0], eax
xor eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xf0]
jmp 0x669526
bsf ecx, ebx
jne 0x668a86
mov ecx, 0x20
bsf ebp, ebp
jne 0x668a90
mov ebp, 0x20
cmp ebx, 1
sbb ebx, ebx
xor ebx, 0xffffffff
not ebx
and ebp, ebx
lea ebx, [ebp + ecx]
sar ebx, 3
lea eax, [eax + ebx + 4]
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc4]
mov ebp, edi
sub edi, ebx
test edi, edi
jge 0x668abf
xor edi, edi
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x148]
mov ebx, dword [esp + 0x144]
mov edx, dword [esp + 0x28]
jmp 0x6696ff
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov esi, dword [esp + 0x48]
mov edi, ebp
sub ebp, esi
mov dword [esp + 0xf8], ebp
lea ebp, [eax - 3]
mov dword [esp + 0xfc], ebp
mov ebp, dword [esp + 0xf8]
test ebp, ebp
jbe 0x668c5f
mov ebp, dword [esp + 0x14c]
cmp ebp, edi
jb 0x669c20
mov esi, dword [esp + 0x48]
cmp edi, esi
jb 0x669c17
mov ecx, dword [esp + 0x140]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
sub edi, esi
mov dword [esp + 0xac], edi
add edi, edx
sub ebp, esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and esi, ebp
mov ebp, dword [ecx + 4]
add esi, ebx
cmp eax, edi
jae 0x668bd0
mov dword [esp + 0xa8], edx
mov dword [esp + 0x12c], esi
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xc], eax
lea ecx, [0x6e4500]
mov dword [esp + 0x10], ecx
call fcn.0044e230
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x12c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa0], edi
mov dword [esp + 0x12c], ebp
lea ecx, [ebp + edx]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
call fcn.00468df0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x140]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xa8]
mov dword [ecx + 0xc], eax
mov eax, dword [0x9eca70]
test eax, eax
jne 0x668c2e
mov ebx, dword [esp + 0x12c]
jmp 0x668c42
call fcn.00468460
mov ebx, dword [esp + 0x12c]
mov dword [edi], ebx
mov ebp, dword [ecx + 4]
mov dword [edi + 4], ebp
mov dword [ecx + 4], ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x144]
mov edi, dword [esp + 0x3c]
mov ebp, edi
sub edi, edx
lea edx, [edi + 3]
mov dword [esp + 0x100], edx
mov edx, ebx
mov ebx, dword [esp + 0x140]
mov esi, dword [ebx + 0x18]
mov edi, dword [ebx + 0x14]
inc edi
add eax, ebp
mov dword [esp + 0xc8], eax
mov ebp, dword [ebx + 0x10]
cmp esi, edi
jae 0x668cf8
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x716c80]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x140]
mov dword [ebx + 0x18], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x668cdc
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x10]
mov dword [edi + 4], ebp
mov dword [ebx + 0x10], ecx
mov eax, dword [esp + 0xc8]
mov edi, edx
mov ebp, ecx
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
mov dword [ebx + 0x14], edi
lea esi, [edi - 1]
shl esi, 4
lea edi, [ebp + esi]
lea esi, [esp + 0xf8]
call fcn.00468be8
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jle 0x669742
nop
mov ebp, dword [esp + 0x148]
cmp ebp, eax
jb 0x669c10
sub ebp, eax
mov ebx, dword [esp + 0x14c]
sub ebx, eax
neg ebx
sar ebx, 0x1f
and ebx, eax
cmp ebp, 7
jbe 0x669c04
mov dword [esp + 0xac], ebx
movzx ebp, byte [edx + ebx]
movzx ecx, byte [edx + ebx + 1]
mov dword [esp + 0xdc], ecx
shr ecx, 0x18
mov ebx, dword [esp + 0xdc]
shl ebx, 8
or ebp, ebx
mov ebx, dword [esp + 0xac]
movzx esi, byte [edx + ebx + 2]
mov dword [esp + 0xdc], esi
shl esi, 0x10
or esi, ebp
mov ebp, dword [esp + 0xdc]
shr ebp, 0x10
or ebp, ecx
movzx ecx, byte [edx + ebx + 3]
mov dword [esp + 0xdc], ecx
shr ecx, 8
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x18
movzx edi, byte [edx + ebx + 4]
or edi, ecx
movzx ecx, byte [edx + ebx + 5]
shl ecx, 8
or edi, ecx
movzx ecx, byte [edx + ebx + 6]
shl ecx, 0x10
or ecx, edi
movzx ebx, byte [edx + ebx + 7]
shl ebx, 0x18
mov edi, ebx
mov ebx, dword [esp + 0x44]
sub eax, ebx
or ebp, esi
or edi, ecx
mov ebx, dword [esp + 0x140]
cmp dword [ebx + 0x14], 2
jle 0x668f50
mov esi, ebx
mov ebx, dword [esp + 0x148]
cmp ebx, eax
jb 0x669bfd
mov dword [esp + 0x9c], ebp
sub ebx, eax
mov ebp, dword [esp + 0x14c]
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
add ebp, edx
cmp ebx, 3
jbe 0x669bf1
mov ebx, dword [esp + 0x9c]
cmp dword [ebp], ebx
jne 0x668f3d
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x54]
lea ebx, [ebx + ebp + 4]
mov ebp, dword [esp + 0x148]
cmp ebp, ebx
jb 0x669be8
mov dword [esp + 0xc4], ebx
mov ebp, dword [esp + 0x14c]
mov ebx, dword [esp + 0xc8]
sub ebp, ebx
mov dword [esp + 0xc0], ebp
lea ecx, [ebp - 4]
neg ecx
sar ecx, 0x1f
mov ebp, dword [esp + 0xc4]
and ecx, ebp
lea ebp, [eax + 4]
mov dword [esp + 0xc4], ebp
add ecx, edx
mov ebp, dword [esp + 0x148]
sub ebp, ebx
mov dword [esp + 0xbc], ebp
mov ebx, dword [esp + 0x148]
mov ebp, dword [esp + 0xc4]
cmp ebx, ebp
jb 0x669bdf
mov dword [esp + 0x120], ecx
mov dword [esp + 0x98], edi
mov ebp, dword [esp + 0xbc]
lea esi, [ebp - 4]
mov dword [esp + 0x8c], esi
mov ebp, dword [esp + 0x14c]
sub ebp, eax
mov dword [esp + 0xb8], ebp
sub ebx, eax
mov dword [esp + 0xb4], ebx
lea eax, [ebp - 4]
neg eax
sar eax, 0x1f
mov ebp, dword [esp + 0xc4]
and ebp, eax
mov eax, esi
and esi, 0x7ffffff8
mov dword [esp + 0x64], esi
add ebp, edx
mov dword [esp + 0x118], ebp
lea edx, [ebx - 4]
mov dword [esp + 0x7c], edx
lea edi, [esi + 4]
mov dword [esp + 0x50], edi
mov dword [esp + 0xe8], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xe8]
jmp 0x66978f
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
jmp 0x668955
mov esi, ebx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov ebx, ebp
jmp 0x668955
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x148]
mov esi, dword [esp + 0x140]
mov ecx, edx
mov edi, esi
mov esi, ebp
mov edx, ebx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x3c], edx
shr esi, 8
shr eax, 8
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x74]
shl ebx, 0x18
or ebx, esi
mov dword [esp + 0xdc], ebx
mov esi, ebp
mov ebp, dword [esp + 0x70]
shl ebp, 0x10
mov dword [esp + 0xd8], ebp
mov ebx, dword [esp + 0x74]
shl ebx, 0x10
mov ebp, dword [esp + 0x70]
shr ebp, 0x10
or ebp, ebx
mov dword [esp + 0xd4], ebp
mov eax, 0xbcdcbf9b
mov ebx, dword [esp + 0xd8]
mul ebx
imul eax, ebp, 0xbcdcbf9b
mov dword [esp + 0xd8], eax
imul ebx, ebx, 0xcf1b
add ebx, edx
mov dword [esp + 0xd0], ebx
mov ebp, dword [esp + 0xdc]
shl ebp, 0x10
mov dword [esp + 0xcc], ebp
mov ebx, dword [esp + 0x20]
shl ebx, 0x10
mov ebp, dword [esp + 0xdc]
shr ebp, 0x10
or ebp, ebx
mov eax, dword [esp + 0xcc]
mov ebx, 0xbcdcbf9b
mul ebx
imul ebp, ebp, 0xbcdcbf9b
add ebp, edx
mov ebx, dword [esp + 0xcc]
imul ebx, ebx, 0xcf1b
mov eax, ebx
mov ebx, dword [esp + 0xd8]
mov edx, ebp
mov ebp, dword [esp + 0xd0]
add ebx, ebp
lea ebp, [eax + edx]
shr ebx, 0x11
lea eax, [esi + ebx*8 + 0x2c]
mov edx, dword [eax]
mov dword [esp + 0xd8], edx
mov eax, dword [eax + 4]
lea edx, [esi + ebx*8 + 0x2c]
lea ebx, [esi + ebx*8 + 0x30]
mov dword [esp + 0x134], ebx
mov dword [esp + 0xc8], eax
mov eax, dword [esi]
mov ebx, dword [esp + 0x3c]
add eax, ebx
shr ebp, 0x11
lea ecx, [esi + ebp*8 + 0x2c]
lea edi, [esi + ebp*8 + 0x2c]
lea ebp, [esi + ebp*8 + 0x30]
mov dword [esp + 0x130], ebp
mov ebp, dword [ecx]
mov dword [esp + 0xd0], ebp
mov ecx, dword [ecx + 4]
mov ebp, dword [esp + 0x70]
mov dword [edx], ebp
mov edx, ebp
mov ebp, dword [esp + 0x134]
mov dword [ebp], eax
mov ebp, dword [esi]
mov eax, ebx
mov ebx, dword [esp + 0xdc]
mov dword [edi], ebx
lea ebp, [eax + ebp + 1]
mov edi, ebx
mov ebx, dword [esp + 0x130]
mov dword [ebx], ebp
mov ebx, dword [esp + 0x44]
mov ebp, eax
sub eax, ebx
mov ebx, dword [esp + 0x140]
cmp dword [ebx + 0x14], 2
jle 0x669264
lea ebx, [eax + 2]
mov ebp, dword [esp + 0x148]
cmp ebp, ebx
jb 0x66a269
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x14c]
sub ebx, eax
sub ebp, eax
mov dword [esp + 0xc4], ebp
lea edi, [ebp - 2]
lea edx, [ebx - 2]
neg edx
sar edx, 0x1f
mov ebp, dword [esp + 0x40]
and edx, ebp
mov ebp, dword [esp + 0x144]
add edx, ebp
cmp edi, 3
jbe 0x66a25d
mov edi, ebx
mov ebx, dword [esp + 0xd4]
cmp dword [edx], ebx
jne 0x66924e
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov ebx, dword [esp + 0x3c]
lea ecx, [ebx + 6]
mov edx, ebp
mov ebp, dword [esp + 0x148]
cmp ebp, ecx
jb 0x66a254
mov ebp, dword [esp + 0x14c]
sub ebp, ebx
lea esi, [ebp - 6]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add eax, 6
add ecx, edx
mov esi, ebp
mov ebp, dword [esp + 0x148]
sub ebp, ebx
mov ebx, dword [esp + 0x148]
cmp ebx, eax
jb 0x66a24d
mov dword [esp + 0x128], ecx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xbc], edi
lea ebx, [ebp - 6]
mov dword [esp + 0x94], ebx
add edi, 0xfffffffa
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
mov edi, ebx
and ebx, 0x7ffffff8
mov dword [esp + 0x6c], ebx
add eax, edx
mov dword [esp + 0x11c], eax
mov ebp, dword [esp + 0xc4]
lea edx, [ebp - 6]
mov dword [esp + 0x88], edx
lea eax, [ebx + 4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe0], eax
xor eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xe0]
jmp 0x669ca8
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x140]
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0xdc]
mov eax, dword [esi]
mov ebx, dword [esp + 0xc8]
sub ebx, eax
mov dword [esp + 0xc8], ebx
sub ebp, ebx
sub ecx, eax
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x3c]
sub ebx, ecx
cmp eax, ebp
jle 0x669296
mov ebp, dword [esp + 0xd8]
cmp edx, ebp
je 0x66897b
inc ebx
cmp eax, ebx
jle 0x6692aa
mov ebx, dword [esp + 0xd0]
cmp ebx, edi
je 0x668988
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x3c]
mov eax, ebp
sub ebp, ebx
sar ebp, 7
lea ebx, [eax + ebp + 2]
add ebp, eax
mov eax, ebp
mov ebp, dword [esp + 0x38]
cmp ebx, ebp
jge 0x669395
mov ecx, dword [esp + 0x148]
cmp ecx, ebx
jb 0x6694e4
mov edx, dword [esp + 0x14c]
mov edi, edx
sub edi, eax
sub ecx, eax
add ecx, 0xfffffffe
lea eax, [edi - 2]
neg eax
sar eax, 0x1f
and eax, ebx
cmp ecx, 7
jbe 0x6694da
mov ebp, dword [esp + 0x144]
movzx edi, byte [ebp + eax]
movzx ecx, byte [ebp + eax + 1]
mov dword [esp + 0xdc], ecx
shr ecx, 0x18
mov ebp, dword [esp + 0xdc]
shl ebp, 8
or edi, ebp
mov ebp, dword [esp + 0x144]
movzx edx, byte [ebp + eax + 2]
mov dword [esp + 0xdc], edx
shl edx, 0x10
or edx, edi
mov edi, ebp
mov ebp, dword [esp + 0xdc]
shr ebp, 0x10
or ebp, ecx
movzx ecx, byte [edi + eax + 3]
mov dword [esp + 0xdc], ecx
shr ecx, 8
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x18
movzx esi, byte [edi + eax + 4]
or esi, ecx
movzx ecx, byte [edi + eax + 5]
shl ecx, 8
or esi, ecx
movzx ecx, byte [edi + eax + 6]
shl ecx, 0x10
or ecx, esi
movzx eax, byte [edi + eax + 7]
shl eax, 0x18
or ebp, edx
or eax, ecx
jmp 0x668f67
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x148]
cmp ecx, eax
jle 0x6694c1
jb 0x6694d5
mov edx, dword [esp + 0x140]
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 8]
sub ecx, eax
lea esi, [ebp + ecx]
mov edi, dword [esp + 0x14c]
sub edi, eax
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
mov edi, dword [edx + 4]
mov edx, dword [esp + 0x144]
add eax, edx
cmp ebx, esi
jae 0x669439
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x12c], eax
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa8], esi
mov dword [esp + 0x12c], edi
lea edx, [edi + ebp]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00468df0
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x140]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xac]
mov dword [ecx + 0xc], eax
mov eax, dword [0x9eca70]
test eax, eax
jne 0x66948f
mov eax, dword [esp + 0x12c]
jmp 0x6694a3
call fcn.00468460
mov eax, dword [esp + 0x12c]
mov dword [edi], eax
mov edx, dword [ecx + 4]
mov dword [edi + 4], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x148]
mov ebx, edx
sub edx, eax
mov dword [ecx + 0x54], edx
mov ecx, ebx
mov esi, dword [esp + 0x13c]
mov eax, dword [esi]
cmp eax, 0x5fffffff
jge 0x6694ce
add eax, ecx
mov dword [esi], eax
add esp, 0x138
ret
call fcn.00468520
mov eax, 7
call fcn.004684c0
mov eax, ebx
call fcn.00468520
add eax, 8
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x90]
mov ebp, edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x5c]
cmp ebp, edx
jge 0x668aae
cmp ebp, ecx
ja 0x669c56
mov ebx, dword [esp + 0xc8]
sub ebx, ebp
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0xbc]
sub ebx, ebp
add ebx, 0xfffffffc
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0xa4]
add ebx, 0xfffffffc
neg ebx
sar ebx, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x80]
cmp ebp, 7
jbe 0x669c4a
mov ebp, dword [esp + 0x124]
movzx eax, byte [ebp + ebx]
movzx edi, byte [ebp + ebx + 1]
mov dword [esp + 0xdc], edi
shl edi, 8
or eax, edi
mov edi, ebx
mov ebx, dword [esp + 0xdc]
shr ebx, 0x18
movzx ecx, byte [ebp + edi + 2]
mov dword [esp + 0xdc], ecx
shl ecx, 0x10
or eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xdc]
shr ebp, 0x10
or ebp, ebx
movzx ebx, byte [ecx + edi + 3]
mov dword [esp + 0xdc], ebx
shr ebx, 8
or ebp, ebx
mov ebx, dword [esp + 0xdc]
shl ebx, 0x18
movzx edx, byte [ecx + edi + 4]
or edx, ebp
movzx ebp, byte [ecx + edi + 5]
shl ebp, 8
or edx, ebp
movzx ebp, byte [ecx + edi + 6]
shl ebp, 0x10
or ebp, edx
movzx edx, byte [ecx + edi + 7]
shl edx, 0x18
or ebx, eax
or edx, ebp
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x84]
cmp eax, ebp
ja 0x669c43
mov dword [esp + 0xdc], ebx
mov ebp, dword [esp + 0xb0]
sub ebp, eax
mov ebx, dword [esp + 0xb4]
sub ebx, eax
add ebp, 0xfffffffc
add ebx, 0xfffffffc
neg ebx
sar ebx, 0x1f
and ebx, eax
cmp ebp, 7
jbe 0x669c37
movzx ebp, byte [esi + ebx]
movzx edi, byte [esi + ebx + 1]
mov dword [esp + 0xd8], edi
shl edi, 8
or ebp, edi
mov edi, ebp
mov ebp, dword [esp + 0xd8]
shr ebp, 0x18
movzx ecx, byte [esi + ebx + 2]
mov dword [esp + 0xd8], ecx
shl ecx, 0x10
or edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xd8]
shr ebx, 0x10
or ebx, ebp
movzx ebp, byte [esi + ecx + 3]
mov dword [esp + 0xd8], ebp
shr ebp, 8
or ebx, ebp
mov ebp, dword [esp + 0xd8]
shl ebp, 0x18
or ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0xdc]
xor ebx, ebp
movzx ebp, byte [esi + ecx + 4]
or ebp, edi
movzx edi, byte [esi + ecx + 5]
shl edi, 8
or ebp, edi
movzx edi, byte [esi + ecx + 6]
shl edi, 0x10
or edi, ebp
movzx ebp, byte [esi + ecx + 7]
shl ebp, 0x18
or ebp, edi
xor ebp, edx
test ebx, ebx
setne cl
test ebp, ebp
setne dl
or edx, ecx
test dl, dl
je 0x6694eb
jmp 0x668a7c
inc eax
mov edx, dword [esp + 0x24]
mov edx, esi
mov ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], edx
cmp edx, edi
jle 0x668ae2
cmp dword [esp + 0x48], ebp
jge 0x668ae2
lea esi, [edx - 1]
cmp ecx, esi
jbe 0x669c30
lea edi, [ebp - 1]
movzx edx, byte [edx + ebx - 1]
cmp ecx, edi
jbe 0x669c29
lea ebp, [ebp + ebx - 1]
cmp byte [ebp], dl
je 0x6696f2
jmp 0x668ada
mov esi, dword [esp + 0x13c]
jmp 0x669395
add eax, 8
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0xb8]
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x120]
mov edx, ebx
mov ebx, edi
mov ebp, dword [esp + 0x118]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x58]
cmp ebp, esi
jge 0x669990
cmp ebp, eax
ja 0x669bd6
mov ebx, dword [esp + 0xc0]
sub ebx, ebp
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xbc]
sub ebx, ebp
add ebx, 0xfffffffc
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xc4]
add ebx, 0xfffffffc
neg ebx
sar ebx, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x78]
cmp ebp, 7
jbe 0x669bca
mov dword [esp + 0xac], ebx
movzx ebp, byte [ecx + ebx]
movzx edi, byte [ecx + ebx + 1]
mov dword [esp + 0xdc], edi
shr edi, 0x18
mov ebx, dword [esp + 0xdc]
shl ebx, 8
or ebp, ebx
mov ebx, dword [esp + 0xac]
movzx eax, byte [ecx + ebx + 2]
mov dword [esp + 0xdc], eax
shl eax, 0x10
or eax, ebp
mov ebp, dword [esp + 0xdc]
shr ebp, 0x10
or ebp, edi
movzx edi, byte [ecx + ebx + 3]
mov dword [esp + 0xdc], edi
shr edi, 8
or ebp, edi
mov edi, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x18
movzx esi, byte [ecx + ebx + 4]
or esi, edi
movzx edi, byte [ecx + ebx + 5]
shl edi, 8
or esi, edi
movzx edi, byte [ecx + ebx + 6]
shl edi, 0x10
or edi, esi
movzx ebx, byte [ecx + ebx + 7]
shl ebx, 0x18
or ebp, eax
or ebx, edi
mov eax, dword [esp + 0x58]
cmp eax, edx
ja 0x669bc3
mov dword [esp + 0xdc], ebp
mov esi, ebx
mov ebx, dword [esp + 0xb4]
sub ebx, eax
mov ebp, dword [esp + 0xb8]
sub ebp, eax
add ebx, 0xfffffffc
add ebp, 0xfffffffc
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ebx, 7
jbe 0x669bb7
mov ebx, dword [esp + 0x118]
movzx edi, byte [ebx + ebp]
movzx edx, byte [ebx + ebp + 1]
mov dword [esp + 0xd8], edx
shr edx, 0x18
mov ebx, dword [esp + 0xd8]
shl ebx, 8
or edi, ebx
mov ebx, dword [esp + 0x118]
movzx ecx, byte [ebx + ebp + 2]
mov dword [esp + 0xd8], ecx
shl ecx, 0x10
or edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xd8]
shr ebx, 0x10
or ebx, edx
movzx edx, byte [ecx + ebp + 3]
mov dword [esp + 0xd8], edx
shr edx, 8
or ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0xd8]
shl ebx, 0x18
or ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0xdc]
xor ebx, ebp
movzx ebp, byte [ecx + edi + 4]
or ebp, edx
movzx edx, byte [ecx + edi + 5]
shl edx, 8
or ebp, edx
movzx edx, byte [ecx + edi + 6]
shl edx, 0x10
or edx, ebp
movzx ebp, byte [ecx + edi + 7]
shl ebp, 0x18
or ebp, edx
xor ebp, esi
test ebp, ebp
setne dl
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x66974e
bsf ecx, ebp
jne 0x669971
mov ecx, 0x20
bsf ebp, ebx
jne 0x66997b
mov ebp, 0x20
cmp ebx, 1
sbb ebx, ebx
xor ebx, 0xffffffff
not ebx
and ecx, ebx
add ecx, ebp
sar ecx, 3
lea edi, [eax + ecx + 4]
mov ecx, dword [esp + 0x13c]
mov ebx, dword [ecx]
mov ebp, dword [esp + 0x9c]
mov eax, ebp
shl ebp, 0x10
shr eax, 0x10
mov esi, ecx
mov ecx, dword [esp + 0x98]
shl ecx, 0x10
or eax, ecx
mov ecx, eax
mov eax, 0xbcdcbf9b
mul ebp
imul ecx, ecx, 0xbcdcbf9b
add ecx, edx
imul ebp, ebp, 0xcf1b
nop
mov eax, ecx
mov ecx, dword [esp + 0xc8]
add ebx, ecx
add ebp, eax
lea eax, [edi - 3]
add ecx, edi
shr ebp, 0x11
lea edx, [esi + ebp*8 + 0x2c]
mov edi, ecx
mov ecx, dword [esp + 0x9c]
mov dword [edx], ecx
lea ecx, [esi + ebp*8 + 0x30]
mov dword [ecx], ebx
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], 0
mov dword [esp + 0x100], 1
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x140]
mov ebx, dword [ecx + 0x18]
mov ebp, dword [ecx + 0x14]
inc ebp
mov eax, dword [ecx + 0x10]
cmp ebx, ebp
jae 0x669a9b
mov dword [esp + 0xc8], edi
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x716c80]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x140]
mov dword [ebx + 0x18], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x669a84
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x10]
mov dword [edi + 4], ebp
mov dword [ebx + 0x10], ecx
mov esi, dword [esp + 0x13c]
mov edi, dword [esp + 0xc8]
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov dword [ecx + 0x14], ebp
lea ebx, [ebp - 1]
shl ebx, 4
add ebx, eax
mov eax, edi
mov edi, ebx
mov edx, esi
lea esi, [esp + 0xf8]
call fcn.00468be8
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jle 0x669b9d
mov ebx, dword [esp + 0x148]
cmp ebx, eax
jb 0x669bb0
sub ebx, eax
mov ebp, dword [esp + 0x14c]
sub ebp, eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ebx, 7
jbe 0x669ba4
mov dword [esp + 0xac], ebp
mov ebx, dword [esp + 0x144]
movzx ecx, byte [ebx + ebp]
movzx edi, byte [ebx + ebp + 1]
mov dword [esp + 0xdc], edi
shr edi, 0x18
mov ebp, dword [esp + 0xdc]
shl ebp, 8
or ecx, ebp
mov ebp, dword [esp + 0xac]
movzx esi, byte [ebx + ebp + 2]
mov dword [esp + 0xdc], esi
shr esi, 0x10
or edi, esi
mov esi, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x10
or ebp, ecx
movzx ecx, byte [ebx + esi + 3]
mov dword [esp + 0xdc], ecx
shr ecx, 8
or edi, ecx
mov ecx, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x18
movzx edx, byte [ebx + esi + 4]
or edi, edx
movzx edx, byte [ebx + esi + 5]
shl edx, 8
or edi, edx
movzx edx, byte [ebx + esi + 6]
shl edx, 0x10
or edi, edx
movzx edx, byte [ebx + esi + 7]
shl edx, 0x18
or ebp, ecx
or edi, edx
mov edx, ebx
mov esi, dword [esp + 0x140]
mov ecx, dword [esp + 0x44]
mov ebx, ebp
jmp 0x668955
mov esi, edx
jmp 0x669395
mov eax, 7
mov ecx, ebx
call fcn.004684c0
mov ecx, ebx
call fcn.00468520
mov eax, 7
mov ecx, ebx
call fcn.004684c0
mov ecx, edx
call fcn.00468520
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov ecx, eax
mov eax, ebp
call fcn.00468520
mov eax, ebp
mov ecx, ebx
call fcn.00468520
mov eax, ebx
mov ecx, ebp
call fcn.00468520
mov eax, 3
mov ecx, ebx
call fcn.004684c0
mov ecx, ebx
call fcn.00468520
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov ecx, ebp
call fcn.00468520
mov eax, esi
mov ecx, edi
call fcn.00468520
mov ecx, edi
mov edx, ebp
call fcn.00468500
mov eax, edi
call fcn.004684c0
mov eax, esi
call fcn.004684c0
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov ecx, ebp
call fcn.00468520
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov eax, ebp
call fcn.00468520
mov eax, esi
mov ecx, ebp
call fcn.00468520
mov eax, ebx
mov ecx, ebp
call fcn.00468520
add eax, 8
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0xc8]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc4]
mov ecx, dword [esp + 0x128]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x60]
cmp ebp, ebx
jge 0x669e82
cmp ebp, edi
ja 0x66a244
mov ebx, dword [esp + 0xc0]
sub ebx, ebp
sub esi, ebp
add ebx, 0xfffffffa
add esi, 0xfffffffa
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
cmp ebx, 7
jbe 0x66a238
movzx ebx, byte [ecx + esi]
movzx eax, byte [ecx + esi + 1]
mov dword [esp + 0xdc], eax
shr eax, 0x18
mov ebp, dword [esp + 0xdc]
shl ebp, 8
or ebx, ebp
movzx ebp, byte [ecx + esi + 2]
mov dword [esp + 0xdc], ebp
shr ebp, 0x10
or ebp, eax
mov eax, ebp
mov ebp, dword [esp + 0xdc]
shl ebp, 0x10
or ebp, ebx
movzx ebx, byte [ecx + esi + 3]
mov dword [esp + 0xdc], ebx
shr ebx, 8
or eax, ebx
mov ebx, dword [esp + 0xdc]
shl ebx, 0x18
movzx edi, byte [ecx + esi + 4]
or edi, eax
movzx eax, byte [ecx + esi + 5]
shl eax, 8
or edi, eax
movzx eax, byte [ecx + esi + 6]
shl eax, 0x10
or eax, edi
movzx esi, byte [ecx + esi + 7]
shl esi, 0x18
or ebx, ebp
or esi, eax
mov eax, dword [esp + 0x60]
cmp eax, edx
ja 0x66a231
mov dword [esp + 0xdc], ebx
mov ebp, dword [esp + 0xc4]
sub ebp, eax
mov ebx, dword [esp + 0xbc]
sub ebx, eax
add ebp, 0xfffffffa
add ebx, 0xfffffffa
neg ebx
sar ebx, 0x1f
and ebx, eax
cmp ebp, 7
jbe 0x66a225
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 0x11c]
movzx edi, byte [ebp + ebx]
movzx edx, byte [ebp + ebx + 1]
mov dword [esp + 0xd8], edx
shr edx, 0x18
mov ebx, dword [esp + 0xd8]
shl ebx, 8
or edi, ebx
mov ebx, dword [esp + 0xac]
movzx ecx, byte [ebp + ebx + 2]
mov dword [esp + 0xd8], ecx
shl ecx, 0x10
or edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xd8]
shr ebx, 0x10
or ebx, edx
movzx edx, byte [ebp + ecx + 3]
mov dword [esp + 0xd8], edx
shr edx, 8
or ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0xd8]
shl ebx, 0x18
or ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0xdc]
xor ebp, ebx
movzx ebx, byte [edi + ecx + 4]
or ebx, edx
movzx edx, byte [edi + ecx + 5]
shl edx, 8
or ebx, edx
movzx edx, byte [edi + ecx + 6]
shl edx, 0x10
or edx, ebx
movzx ebx, byte [edi + ecx + 7]
shl ebx, 0x18
or ebx, edx
xor ebx, esi
test ebx, ebx
setne cl
test ebp, ebp
setne dl
or ecx, edx
test cl, cl
je 0x669c6f
bsf ebx, ebx
jne 0x669e5f
mov ebx, 0x20
bsf ecx, ebp
jne 0x669e69
mov ecx, 0x20
cmp ebp, 1
sbb ebp, ebp
xor ebp, 0xffffffff
xchg ebp, ebx
not ebx
xchg ebp, ebx
and ebx, ebp
add ebx, ecx
sar ebx, 3
lea eax, [eax + ebx + 4]
lea ebx, [eax - 3]
mov dword [esp + 0x10c], ebx
mov ebx, dword [esp + 0x13c]
mov ebp, dword [ebx + 4]
mov ecx, ebx
mov ebx, dword [esp + 0x3c]
mov edx, ebx
sub ebx, ebp
test ebx, ebx
jge 0x669ea6
xor ebx, ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x48]
lea esi, [edx + 2]
inc ebp
mov dword [esp + 0x2c], ebp
mov edi, dword [esp + 0x148]
jmp 0x669eeb
inc dword [esp + 0x10c]
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov esi, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x13c]
mov ebp, dword [esp + 0x40]
cmp ebp, ebx
jle 0x669f36
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jle 0x669f36
lea ecx, [ebp - 1]
cmp edi, ecx
jbe 0x66a21c
lea eax, [esi - 1]
mov ebx, dword [esp + 0x144]
movzx ebp, byte [ebp + ebx - 1]
cmp edi, eax
jbe 0x66a215
lea edx, [esi + ebx - 1]
xchg ebp, eax
cmp byte [edx], al
xchg ebp, eax
je 0x669ec3
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x48]
nop
cmp esi, ebx
je 0x66a074
mov ebp, dword [esp + 0x14c]
cmp ebp, esi
jb 0x66a20c
cmp esi, ebx
jb 0x66a203
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x140]
mov edi, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
sub esi, ebx
lea edx, [eax + esi]
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [ecx + 4]
mov ecx, dword [esp + 0x144]
add ebx, ecx
cmp edi, edx
jae 0x669fe1
mov dword [esp + 0xac], esi
mov dword [esp + 0x12c], ebx
mov dword [esp + 0xa8], eax
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0xac]
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], edx
mov dword [esp + 0x12c], ebp
add eax, ebp
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00468df0
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x140]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xac]
mov dword [ecx + 0xc], eax
mov eax, dword [0x9eca70]
test eax, eax
jne 0x66a036
mov ebx, dword [esp + 0x12c]
jmp 0x66a04a
call fcn.00468460
mov ebx, dword [esp + 0x12c]
mov dword [edi], ebx
mov ebp, dword [ecx + 4]
mov dword [edi + 4], ebp
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x30]
sub ebp, ebx
mov dword [esp + 0x108], ebp
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x148]
mov dword [esp + 0x110], 1
mov ebx, dword [esp + 0x140]
mov ebp, dword [ebx + 0x18]
mov esi, dword [ebx + 0x14]
inc esi
mov ecx, dword [ebx + 0x10]
cmp ebp, esi
jae 0x66a0f7
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x716c80]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x140]
mov dword [ebx + 0x18], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x66a0e3
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x10]
mov dword [edi + 4], ebp
mov dword [ebx + 0x10], ecx
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x148]
mov esi, edx
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x14], esi
lea ebp, [esi - 1]
shl ebp, 4
add ecx, ebp
lea esi, [esp + 0x108]
mov ebp, edi
mov edi, ecx
call fcn.00468be8
lea ecx, [eax + edx + 2]
mov dword [esp + 0x48], ecx
add eax, edx
mov ebx, dword [esp + 0x38]
cmp ecx, ebx
jge 0x66a1e2
nop
cmp ebp, ecx
jb 0x66a1fa
sub ebp, eax
mov ebx, dword [esp + 0x14c]
sub ebx, eax
add ebp, 0xfffffffe
add ebx, 0xfffffffe
neg ebx
sar ebx, 0x1f
and ebx, ecx
cmp ebp, 7
jbe 0x66a1ee
mov eax, dword [esp + 0x144]
movzx ebp, byte [eax + ebx]
movzx edi, byte [eax + ebx + 1]
mov dword [esp + 0xdc], edi
shr edi, 0x18
mov esi, dword [esp + 0xdc]
shl esi, 8
or ebp, esi
movzx esi, byte [eax + ebx + 2]
mov dword [esp + 0xdc], esi
shl esi, 0x10
or ebp, esi
mov esi, dword [esp + 0xdc]
shr esi, 0x10
or esi, edi
movzx edi, byte [eax + ebx + 3]
mov dword [esp + 0xdc], edi
shr edi, 8
or esi, edi
mov edi, dword [esp + 0xdc]
shl edi, 0x18
movzx edx, byte [eax + ebx + 4]
or edx, esi
movzx esi, byte [eax + ebx + 5]
shl esi, 8
or edx, esi
movzx esi, byte [eax + ebx + 6]
shl esi, 0x10
or esi, edx
movzx edx, byte [eax + ebx + 7]
shl edx, 0x18
or ebp, edi
or edx, esi
mov edi, eax
mov ebx, ecx
mov eax, edx
jmp 0x668f67
mov esi, dword [esp + 0x13c]
jmp 0x669395
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov eax, ecx
mov ecx, ebp
call fcn.00468520
mov eax, ebx
mov ecx, esi
call fcn.00468520
mov ecx, esi
mov edx, ebp
call fcn.00468500
mov ecx, edi
call fcn.004684c0
mov eax, ecx
mov ecx, edi
call fcn.004684c0
mov eax, 7
mov ecx, ebp
call fcn.004684c0
mov ecx, edx
call fcn.00468520
mov eax, 7
mov ecx, ebx
call fcn.004684c0
mov eax, ebp
mov ecx, edi
call fcn.00468520
mov ecx, ebx
call fcn.00468520
mov eax, ecx
mov ecx, ebp
call fcn.00468520
mov eax, 3
mov ecx, edi
call fcn.004684c0
mov eax, ebx
mov ecx, ebp
call fcn.00468520
lea ebp, [ebx + eax*8 + 0x2c]
mov dword [ebp], 0
lea ebp, [ebx + eax*8 + 0x30]
mov dword [ebp], 0
inc eax
cmp eax, 0x8000
jl 0x66a272
mov ebp, dword [ebx + 4]
mov dword [ebx], ebp
jmp 0x668877
call fcn.00467050
jmp fcn.00668840