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

Disassembly:
push ebp
push edi
push esi
xor esi, esi
push ebx
sub esp, 0xcc
mov dword [esp + 0x1c], eax
mov eax, ecx
shl eax, 3
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], edx
lea esi, [esi]
lea eax, [esi + 2]
cmp eax, dword [esp + 0x18]
jae 0x660ebb72
mov ebx, dword [esp + 0x24]
mov edx, esi
mov edi, esi
lea ebp, [esi + 3]
shr edx, 3
and edi, 7
movzx edx, byte [ebx + edx]
mov ecx, edi
mov dword [esp + 0x30], edi
sar edx, cl
mov ecx, edx
and ecx, 1
mov byte [esp + 0x2f], cl
lea ecx, [esi + 1]
mov edx, ecx
and ecx, 7
shr edx, 3
movzx edx, byte [ebx + edx]
sar edx, cl
mov ecx, eax
and eax, 7
shr ecx, 3
and edx, 1
movzx ebx, byte [ebx + ecx]
mov ecx, eax
sar ebx, cl
and ebx, 1
lea eax, [edx + ebx*2]
cmp eax, 3
je 0x660ebfcd
test eax, eax
je 0x660eba73
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
cmp eax, 1
je 0x660ebba0
lea ebx, [esi + 0x11]
cmp ebx, dword [esp + 0x18]
ja 0x660ebff5
lea edx, [esi + 0xe]
lea ecx, [esi + 0xf]
mov dword [esp + 0x28], edx
mov eax, ecx
mov edx, dword [esp + 0x24]
and ecx, 7
shr eax, 3
lea edi, [esi + 0xd]
movzx eax, byte [edx + eax]
sar eax, cl
mov ecx, dword [esp + 0x24]
lea edx, [eax*4]
lea eax, [esi + 0x10]
shr eax, 3
and edx, 4
movzx eax, byte [ecx + eax]
movzx ecx, byte [esp + 0x30]
sar eax, cl
mov ecx, dword [esp + 0x24]
shl eax, 3
and eax, 8
or edx, eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x28]
mov eax, edx
and edx, 7
shr eax, 3
movzx eax, byte [ecx + eax]
mov ecx, edx
mov edx, edi
and edi, 7
shr edx, 3
sar eax, cl
mov ecx, dword [esp + 0x24]
add eax, eax
movzx edx, byte [ecx + edx]
mov ecx, edi
and eax, 2
sar edx, cl
and edx, 1
or edx, eax
mov eax, dword [esp + 0x34]
lea edi, [eax + edx + 4]
lea eax, [edi + edi*2]
add eax, ebx
cmp dword [esp + 0x18], eax
jb 0x660ebfe1
mov edx, dword [esp + 0x24]
mov eax, ebp
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
shr eax, 3
mov dword [esp + 0xb4], 0
movzx eax, byte [edx + eax]
mov byte [esp + 0x40], al
lea eax, [esi + 4]
mov dword [esp + 0x6c], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x7c], al
lea eax, [esi + 5]
mov dword [esp + 0x70], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x7d], al
lea eax, [esi + 6]
mov dword [esp + 0x74], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x7e], al
lea eax, [esi + 7]
mov dword [esp + 0x78], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x7f], al
lea eax, [esi + 8]
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x44], al
lea eax, [esi + 9]
mov dword [esp + 0x4c], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x50], al
lea eax, [esi + 0xa]
mov dword [esp + 0x54], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x58], al
lea eax, [esi + 0xb]
mov dword [esp + 0x5c], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x60], al
lea eax, [esi + 0xc]
mov dword [esp + 0x64], eax
shr eax, 3
movzx eax, byte [edx + eax]
mov byte [esp + 0x68], al
mov dword [esp], 0x4c
call sub.msvcrt.dll_malloc
mov dword [esp + 0x28], eax
test eax, eax
je 0x660ec4d7
mov dword [esp + 0x34], edi
mov eax, 0x10
xor edx, edx
mov dword [esp + 0x38], ebp
jmp 0x660eb8b6
add edx, 1
mov dword [ebp], 0
cmp edx, 0x13
je 0x660eb919
mov eax, dword [edx*4 + 0x661e2720]
mov esi, dword [esp + 0x28]
lea ebp, [esi + eax*4]
cmp dword [esp + 0x34], edx
jbe 0x660eb8a0
lea ecx, [ebx + 1]
mov edi, dword [esp + 0x24]
add edx, 1
mov eax, ecx
and ecx, 7
shr eax, 3
movzx esi, byte [edi + eax]
mov eax, ebx
shr eax, 3
sar esi, cl
movzx eax, byte [edi + eax]
mov ecx, ebx
and ecx, 7
add esi, esi
sar eax, cl
and esi, 2
lea ecx, [ebx + 2]
add ebx, 3
and eax, 1
or esi, eax
mov eax, ecx
and ecx, 7
shr eax, 3
movzx eax, byte [edi + eax]
sar eax, cl
shl eax, 2
and eax, 4
add esi, eax
mov dword [ebp], esi
cmp edx, 0x13
jne 0x660eb8af
mov dword [esp], 0x4c
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_malloc
mov dword [esp + 0x38], eax
mov edi, eax
mov dword [esp + 0xb4], eax
test eax, eax
je 0x660ec4bd
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0xac]
mov dword [esp + 0xbc], 0x13
mov dword [esp + 0xb8], 7
mov ecx, edx
rep movsd dword es:[edi], dword [esi]
call fcn.660eb0c0
mov edi, eax
test eax, eax
je 0x660ec009
mov eax, dword [esp + 0xac]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x84]
mov esi, ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.661273a8
test edi, edi
jne 0x660ebb8d
cmp byte [esp + 0x2f], 0
je 0x660eb640
add esp, 0xcc
xor edi, edi
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
add ebp, 1
test ebp, 7
jne 0x660eba70
mov ebx, ebp
shr ebx, 3
lea ecx, [ebx + 4]
cmp dword [esp + 0x3c], ecx
jbe 0x660ebb72
mov edi, dword [esp + 0x24]
movzx esi, byte [edi + ebx + 1]
movzx eax, byte [edi + ebx]
movzx edx, byte [edi + ebx + 2]
shl esi, 8
add esi, eax
movzx eax, byte [edi + ebx + 3]
shl eax, 8
add eax, edx
add eax, esi
cmp eax, 0xffff
jne 0x660ebb88
mov eax, dword [esp + 0x20]
lea edi, [esi + eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
cmp edi, eax
jbe 0x660ebb04
add eax, eax
mov ebp, edi
cmp edi, eax
jbe 0x660ebfba
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ebp
mov dword [esp + 0x28], ecx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x660ec4f9
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov dword [edx + 8], ebp
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
lea ebp, [ecx + esi]
mov dword [eax + 4], edi
cmp dword [esp + 0x3c], ebp
jb 0x660ebfd7
test esi, esi
je 0x660ec431
mov esi, eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], ebp
sub ebx, eax
add edx, ebx
mov ebp, edx
lea esi, [esi]
movzx edx, byte [ebp + eax + 4]
mov ebx, dword [esi]
mov ecx, eax
add eax, 1
mov byte [ebx + ecx], dl
cmp edi, eax
jne 0x660ebb38
mov ebp, dword [esp + 0x20]
cmp byte [esp + 0x2f], 0
mov dword [esp + 0x20], eax
lea esi, [ebp*8]
jne 0x660eba5a
lea eax, [esi + 2]
cmp eax, dword [esp + 0x18]
jb 0x660eb64d
add esp, 0xcc
mov edi, 0x34
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov edi, 0x15
add esp, 0xcc
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x84]
call fcn.660eb510
mov dword [esp], pe_nt_image_headers32
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x660ebf67
lea edx, [eax + 0x80]
lea esi, [esi]
nop
mov dword [eax], 5
add eax, 4
cmp edx, eax
jne 0x660ebbd0
mov dword [esp], pe_nt_image_headers32
call sub.msvcrt.dll_malloc
mov dword [esp + 0xa0], eax
test eax, eax
je 0x660ebc21
mov edi, eax
mov ecx, 0x20
mov esi, ebx
mov dword [esp + 0xa8], 0x20
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x98]
mov dword [esp + 0xa4], 0xf
call fcn.660eb0c0
mov dword [esp], ebx
call fcn.661273a8
mov edi, dword [esp + 0x24]
lea esi, [esi]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x94]
xor ebx, ebx
mov dword [esp + 0x30], eax
mov esi, eax
jmp 0x660ebc76
mov eax, ebp
mov ecx, ebp
add ebp, 1
shr eax, 3
and ecx, 7
movzx eax, byte [edi + eax]
sar eax, cl
and eax, 1
lea eax, [eax + ebx*2]
mov ebx, dword [esi + eax*4]
cmp ebx, edx
jb 0x660ebc98
sub ebx, edx
cmp edx, ebx
jbe 0x660ebc7c
cmp dword [esp + 0x18], ebp
ja 0x660ebc50
mov esi, ebp
xor eax, eax
cmp dword [esp + 0x18], ebp
setae al
mov edi, eax
add edi, 0xa
jmp 0x660eb9f0
cmp ebx, 0xff
ja 0x660ebcff
mov eax, dword [esp + 0x20]
lea esi, [eax + 1]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 8]
mov eax, dword [eax]
cmp esi, edx
jbe 0x660ebce8
add edx, edx
mov ecx, esi
cmp esi, edx
ja 0x660ebcc3
lea edx, [esi + esi*2]
shr edx, 1
mov ecx, edx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x28], ecx
call sub.msvcrt.dll_realloc
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x660ec53d
mov edx, dword [esp + 0x1c]
mov dword [edx + 8], ecx
mov dword [edx], eax
mov edx, dword [esp + 0x1c]
mov dword [edx + 4], esi
mov edx, dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov byte [eax + edx], bl
jmp 0x660ebc30
lea eax, [ebx - 0x101]
cmp eax, 0x1c
ja 0x660ec528
mov esi, dword [eax*4 + 0x661e2900]
mov eax, dword [eax*4 + 0x661e2880]
mov dword [esp + 0x28], esi
lea esi, [eax + ebp]
cmp dword [esp + 0x18], esi
jb 0x660ec425
test eax, eax
je 0x660ebfb3
mov dword [esp + 0x34], esi
xor ebx, ebx
xor edx, edx
mov esi, eax
nop
lea ecx, [ebp + edx]
mov eax, ecx
and ecx, 7
shr eax, 3
movzx eax, byte [edi + eax]
sar eax, cl
mov ecx, edx
add edx, 1
and eax, 1
shl eax, cl
add ebx, eax
cmp esi, edx
jne 0x660ebd40
add dword [esp + 0x28], ebx
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0xa8]
xor eax, eax
jmp 0x660ebda7
mov edx, esi
mov ecx, esi
add esi, 1
shr edx, 3
and ecx, 7
movzx edx, byte [edi + edx]
sar edx, cl
and edx, 1
lea eax, [edx + eax*2]
mov eax, dword [ebp + eax*4]
cmp eax, ebx
jb 0x660ebdc0
sub eax, ebx
cmp ebx, eax
jbe 0x660ebdad
cmp dword [esp + 0x18], esi
ja 0x660ebd80
xor eax, eax
cmp dword [esp + 0x18], esi
setae al
mov edi, eax
add edi, 0xa
jmp 0x660eb9f0
cmp eax, 0x1d
ja 0x660ec499
mov ebx, dword [eax*4 + 0x661e2800]
mov eax, dword [eax*4 + 0x661e2780]
mov dword [esp + 0x34], ebx
lea ebp, [eax + esi]
cmp dword [esp + 0x18], ebp
jb 0x660ec43c
test eax, eax
je 0x660ebfc6
mov dword [esp + 0x38], ebp
xor ebx, ebx
xor edx, edx
mov ebp, eax
lea esi, [esi]
lea ecx, [edx + esi]
mov eax, ecx
and ecx, 7
shr eax, 3
movzx eax, byte [edi + eax]
sar eax, cl
mov ecx, edx
add edx, 1
and eax, 1
shl eax, cl
add ebx, eax
cmp ebp, edx
jne 0x660ebe00
add dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
cmp eax, esi
jb 0x660ec446
mov esi, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
cmp esi, eax
jbe 0x660ebe7a
add eax, eax
mov ebx, esi
cmp esi, eax
ja 0x660ebe57
lea ebx, [esi + esi*2]
shr ebx, 1
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], ebx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x660ec53d
mov edx, dword [esp + 0x1c]
mov dword [edx + 8], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
sub eax, ebx
mov dword [ecx + 4], esi
cmp edx, ebx
ja 0x660ebf70
mov ebx, dword [ecx]
mov edx, dword [esp + 0x20]
add eax, ebx
add edx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x20], esi
jmp 0x660ebc30
mov dword [esp], pe_nt_image_headers32
call sub.msvcrt.dll_malloc
mov dword [esp + 0xa0], eax
test eax, eax
je 0x660ec9e4
mov esi, dword [esp + 0x34]
mov edi, eax
mov ecx, 0x20
lea eax, [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xa8], 0x20
mov dword [esp + 0xa4], 0xf
call fcn.660eb0c0
mov edi, eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.661273a8
mov esi, dword [esp + 0x34]
mov dword [esp], esi
call fcn.661273a8
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.661273a8
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.661273a8
test edi, edi
jne 0x660eb9e3
mov edi, dword [esp + 0x24]
jmp 0x660ebc30
test edx, edx
je 0x660ebc30
add edx, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebp
mov esi, edx
mov ebp, ecx
mov dword [esp + 0x30], edi
mov edi, ebx
lea esi, [esi]
mov edx, dword [ebp]
mov ebx, eax
lea ecx, [eax + edi]
add eax, 1
movzx ebx, byte [edx + ebx]
mov byte [edx + ecx], bl
cmp eax, esi
jne 0x660ebf90
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
jmp 0x660ebc30
mov esi, ebp
jmp 0x660ebd6a
lea edx, [edi + edi*2]
shr edx, 1
mov ebp, edx
jmp 0x660ebad9
mov ebp, esi
jmp 0x660ebe29
mov edi, 0x14
jmp 0x660ebb8d
mov edi, 0x17
jmp 0x660ebb8d
mov dword [esp + 0x30], 0
mov esi, ebx
mov edi, 0x32
jmp 0x660eb9f0
mov dword [esp + 0x30], 0
mov esi, ebp
mov edi, 0x31
jmp 0x660eb9f0
mov dword [esp + 4], 1
mov dword [esp], 0x480
call sub.msvcrt.dll_calloc
mov dword [esp + 4], 1
mov dword [esp], pe_nt_image_headers32
mov edi, eax
mov dword [esp + 0x38], eax
call sub.msvcrt.dll_calloc
mov esi, dword [esp + 0xac]
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], esi
test edi, edi
je 0x660ec503
test eax, eax
je 0x660ec503
mov ecx, dword [esp + 0x70]
movzx eax, byte [esp + 0x7d]
and ecx, 7
sar eax, cl
mov ecx, dword [esp + 0x74]
shl eax, 2
mov edx, eax
movzx eax, byte [esp + 0x7e]
and ecx, 7
and edx, 4
sar eax, cl
mov ecx, dword [esp + 0x6c]
shl eax, 3
and eax, 8
and ecx, 7
or edx, eax
movzx eax, byte [esp + 0x7c]
mov esi, edx
movzx edx, byte [esp + 0x40]
sar eax, cl
mov ecx, ebp
and ecx, 7
add eax, eax
sar edx, cl
and eax, 2
mov ecx, dword [esp + 0x78]
and edx, 1
or eax, edx
and ecx, 7
lea edx, [esi + eax]
movzx eax, byte [esp + 0x7f]
sar eax, cl
mov ecx, dword [esp + 0x54]
shl eax, 4
and eax, 0x10
and ecx, 7
lea ebp, [eax + edx]
movzx eax, byte [esp + 0x58]
lea edi, [ebp + 0x101]
mov dword [esp + 0x6c], ebp
mov edx, eax
movzx eax, byte [esp + 0x60]
mov dword [esp + 0x40], edi
sar edx, cl
mov ecx, dword [esp + 0x5c]
shl edx, 2
and ecx, 7
and edx, 4
sar eax, cl
mov ecx, dword [esp + 0x64]
shl eax, 3
and eax, 8
and ecx, 7
or edx, eax
movzx eax, byte [esp + 0x68]
sar eax, cl
mov ecx, dword [esp + 0x4c]
shl eax, 4
and eax, 0x10
and ecx, 7
lea esi, [edx + eax + 1]
movzx eax, byte [esp + 0x50]
movzx edx, byte [esp + 0x44]
mov dword [esp + 0x50], 0
sar eax, cl
movzx ecx, byte [esp + 0x30]
add eax, eax
sar edx, cl
and eax, 2
and edx, 1
or eax, edx
mov edx, edi
add eax, esi
mov esi, dword [esp + 0x34]
mov ecx, eax
lea eax, [ebp*4]
mov ebp, dword [esp + 0x24]
sub esi, eax
mov eax, 0x3fffffff
add ecx, edi
mov edi, dword [esp + 0xbc]
sub eax, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], esi
xor esi, esi
lea esi, [esi]
mov dword [esp + 0x44], esi
xor edx, edx
mov esi, dword [esp + 0x48]
jmp 0x660ec1b1
mov eax, ebx
mov ecx, ebx
shr eax, 3
and ecx, 7
movzx eax, byte [ebp + eax]
sar eax, cl
and eax, 1
lea eax, [eax + edx*2]
mov edx, dword [esi + eax*4]
lea eax, [ebx + 1]
cmp edx, edi
jb 0x660ec1d0
sub edx, edi
mov ebx, eax
cmp edi, edx
jbe 0x660ec1b7
cmp dword [esp + 0x18], ebx
ja 0x660ec188
xor eax, eax
cmp dword [esp + 0x18], ebx
setae al
mov edi, eax
add edi, 0xa
jmp 0x660eb995
mov esi, dword [esp + 0x44]
cmp edx, 0xf
ja 0x660ec2a2
cmp dword [esp + 0x40], esi
jbe 0x660ec290
mov ebx, dword [esp + 0x38]
mov dword [ebx + esi*4], edx
add esi, 1
mov ebx, eax
cmp dword [esp + 0x30], esi
ja 0x660ec178
mov edi, dword [esp + 0x50]
mov ebp, ebx
test edi, edi
jne 0x660ec8f5
mov eax, dword [esp + 0x38]
mov edi, 0x40
mov eax, dword [eax + 0x400]
test eax, eax
je 0x660eb995
mov dword [esp], 0x480
call sub.msvcrt.dll_malloc
mov dword [esp + 0x8c], eax
test eax, eax
je 0x660ec503
mov esi, dword [esp + 0x38]
mov edi, eax
mov ecx, 0x120
lea eax, [esp + 0x84]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x94], 0x120
mov dword [esp + 0x90], 0xf
call fcn.660eb0c0
mov edi, eax
test eax, eax
je 0x660ebec2
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], eax
jmp 0x660eb995
mov ebx, dword [esp + 0x34]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov dword [ebx + ecx*4], edx
jmp 0x660ec1ee
cmp edx, 0x10
jne 0x660ec554
test esi, esi
je 0x660ec51c
lea edx, [ebx + 3]
mov dword [esp + 0x44], edx
cmp dword [esp + 0x18], edx
jb 0x660ec510
lea ecx, [ebx + 2]
mov edx, ecx
and ecx, 7
shr edx, 3
movzx edx, byte [ebp + edx]
sar edx, cl
lea ebx, [edx + edx]
mov edx, eax
and eax, 7
shr edx, 3
mov ecx, eax
mov eax, dword [esp + 0x6c]
and ebx, 2
movzx edx, byte [ebp + edx]
add eax, 0x102
sar edx, cl
and edx, 1
or edx, ebx
lea ecx, [edx + 3]
cmp eax, esi
jbe 0x660ec407
mov eax, dword [esp + 0x38]
mov edx, dword [eax + esi*4 - 4]
cmp esi, dword [esp + 0x30]
jae 0x660ec4ac
mov ebx, dword [esp + 0x40]
cmp ebx, esi
ja 0x660ec3fb
mov eax, esi
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea eax, [esi + 1]
cmp dword [esp + 0x30], eax
jbe 0x660ec486
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec419
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea eax, [esi + 2]
cmp eax, dword [esp + 0x30]
jae 0x660ec486
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec452
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea eax, [esi + 3]
cmp ecx, 3
je 0x660ec3f0
cmp eax, dword [esp + 0x30]
jae 0x660ec486
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec46a
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea eax, [esi + 4]
cmp ecx, 4
je 0x660ec3f0
cmp eax, dword [esp + 0x30]
jae 0x660ec486
mov ebx, dword [esp + 0x40]
cmp eax, ebx
jb 0x660ec45e
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], edx
lea eax, [esi + 5]
cmp ecx, 5
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec486
cmp dword [esp + 0x40], eax
jbe 0x660ec476
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], edx
mov ebx, dword [esp + 0x44]
add esi, 6
jmp 0x660ec1f3
mov ebx, dword [esp + 0x44]
mov esi, eax
jmp 0x660ec1f3
mov eax, dword [esp + 0x38]
mov dword [eax + esi*4], edx
jmp 0x660ec32f
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x34]
add eax, esi
mov edx, dword [ebx + eax*4]
jmp 0x660ec30e
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], edx
jmp 0x660ec351
mov esi, ebp
mov edi, 0x33
jmp 0x660eb9f0
mov eax, dword [esp + 0x20]
mov ebp, ecx
jmp 0x660ebb4f
mov edi, 0x33
jmp 0x660eb9f0
mov esi, ebp
mov edi, 0x34
jmp 0x660eb9f0
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], edx
jmp 0x660ec373
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], edx
jmp 0x660ec3c1
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], edx
jmp 0x660ec39a
mov ebx, dword [esp + 0x34]
sub eax, dword [esp + 0x40]
mov dword [ebx + eax*4], edx
jmp 0x660ec3e4
mov dword [esp + 0x50], 0xd
mov ebx, dword [esp + 0x44]
mov esi, eax
jmp 0x660ec1f3
cmp eax, 0xffffffff
je 0x660ebdad
mov edi, 0x12
jmp 0x660eb9f0
mov dword [esp + 0x50], 0xd
mov ebx, dword [esp + 0x44]
jmp 0x660ec1f3
mov dword [esp + 0x48], 0
mov edi, 0x53
mov dword [esp + 0x34], 0
jmp 0x660eb995
mov dword [esp + 0x48], 0
mov edi, 0x53
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
jmp 0x660eb995
mov edi, 0x53
jmp 0x660ebb8d
mov edi, 0x53
jmp 0x660eb995
mov ebx, eax
mov edi, 0x32
jmp 0x660eb995
mov ebx, eax
mov edi, 0x36
jmp 0x660eb995
mov esi, ebp
cmp ebx, 0x100
jne 0x660ebc7e
xor edi, edi
jmp 0x660eb9f0
mov eax, dword [esp + 0x84]
mov esi, ebp
mov edi, 0x53
mov dword [esp + 0x30], eax
jmp 0x660eb9f0
mov ebx, eax
cmp edx, 0x11
je 0x660ec6c9
cmp edx, 0x12
jne 0x660ec9b7
lea eax, [eax + 7]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], eax
jb 0x660ec9ca
lea eax, [ebx + 2]
lea ecx, [ebx + 3]
mov dword [esp + 0x4c], ecx
lea ecx, [ebx + 4]
lea edx, [ebx + 1]
mov dword [esp + 0x58], eax
lea eax, [ebx + 6]
mov dword [esp + 0x5c], eax
mov eax, ecx
and ecx, 7
shr eax, 3
mov dword [esp + 0x54], edx
lea edx, [ebx + 5]
movzx eax, byte [ebp + eax]
sar eax, cl
shl eax, 4
and eax, 0x10
lea eax, [esi + eax + 0xb]
mov dword [esp + 0x60], eax
mov eax, edx
and edx, 7
shr eax, 3
mov ecx, edx
movzx eax, byte [ebp + eax]
sar eax, cl
mov ecx, dword [esp + 0x5c]
mov edx, eax
mov eax, ecx
shl edx, 5
and ecx, 7
shr eax, 3
and edx, 0x20
add edx, dword [esp + 0x60]
movzx eax, byte [ebp + eax]
mov dword [esp + 0x60], edx
sar eax, cl
mov edx, eax
mov eax, dword [esp + 0x60]
shl edx, 6
and edx, 0x40
add eax, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov eax, edx
and edx, 7
shr eax, 3
mov ecx, edx
movzx eax, byte [ebp + eax]
sar eax, cl
mov ecx, ebx
and ebx, 7
shr ecx, 3
add eax, eax
movzx edx, byte [ebp + ecx]
mov ecx, ebx
and eax, 2
mov ebx, dword [esp + 0x58]
sar edx, cl
and edx, 1
or eax, edx
mov edx, dword [esp + 0x5c]
add edx, eax
mov eax, ebx
and ebx, 7
shr eax, 3
mov ecx, ebx
movzx eax, byte [ebp + eax]
sar eax, cl
mov ecx, dword [esp + 0x4c]
shl eax, 2
and eax, 4
shr ecx, 3
movzx ebx, byte [ebp + ecx]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x64]
and ecx, 7
sar ebx, cl
lea ecx, [ebx*8]
mov ebx, dword [esp + 0x38]
and ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x40]
add edx, eax
mov eax, dword [esp + 0x30]
jmp 0x660ec69e
mov dword [ebx + esi*4], 0
add esi, 1
cmp esi, edx
je 0x660ec6bc
cmp esi, eax
jae 0x660ec8ec
cmp ecx, esi
ja 0x660ec690
mov dword [edi + esi*4 - 0x404], 0
add esi, 1
cmp esi, edx
jne 0x660ec69e
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
jmp 0x660ec1f3
lea eax, [eax + 3]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], eax
jb 0x660ec9ca
lea ecx, [ebx + 1]
lea eax, [ebx + 2]
mov dword [esp + 0x4c], eax
mov eax, ecx
and ecx, 7
shr eax, 3
movzx eax, byte [ebp + eax]
sar eax, cl
mov ecx, ebx
lea edx, [eax + eax]
mov eax, ebx
and ecx, 7
mov ebx, dword [esp + 0x4c]
shr eax, 3
and edx, 2
movzx eax, byte [ebp + eax]
sar eax, cl
and eax, 1
or edx, eax
mov eax, ebx
and ebx, 7
shr eax, 3
mov ecx, ebx
movzx eax, byte [ebp + eax]
sar eax, cl
shl eax, 2
and eax, 4
lea edx, [edx + eax + 3]
cmp esi, dword [esp + 0x30]
jae 0x660ec9d4
mov ebx, dword [esp + 0x40]
cmp ebx, esi
ja 0x660ec900
mov eax, esi
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 1]
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec910
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 2]
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec920
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 3]
cmp edx, 3
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec930
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 4]
cmp edx, 4
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec953
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 5]
cmp edx, 5
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec963
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 6]
cmp edx, 6
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec973
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 7]
cmp edx, 7
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec983
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 8]
cmp edx, 8
je 0x660ec3f0
cmp dword [esp + 0x30], eax
jbe 0x660ec940
mov ebx, dword [esp + 0x40]
cmp ebx, eax
ja 0x660ec9a7
sub eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [ebx + eax*4], 0
lea eax, [esi + 9]
cmp edx, 9
je 0x660ec3f0
cmp eax, dword [esp + 0x30]
jae 0x660ec940
cmp dword [esp + 0x40], eax
jbe 0x660ec993
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
mov ebx, dword [esp + 0x44]
add esi, 0xa
jmp 0x660ec1f3
mov ebp, dword [esp + 0x44]
mov edi, 0xf
mov ebx, ebp
jmp 0x660eb995
mov eax, dword [esp + 0x38]
mov dword [eax + esi*4], 0
jmp 0x660ec753
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec779
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec79f
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec7ce
mov dword [esp + 0x50], 0xe
mov ebx, dword [esp + 0x44]
mov esi, eax
jmp 0x660ec1f3
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec7fd
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec82c
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec85b
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec88a
mov ebx, dword [esp + 0x34]
sub eax, dword [esp + 0x40]
mov dword [ebx + eax*4], 0
jmp 0x660ec8e0
mov ebx, dword [esp + 0x38]
mov dword [ebx + eax*4], 0
jmp 0x660ec8b9
mov edi, 0x10
cmp edx, 0xffffffff
jne 0x660eb995
jmp 0x660ec1b7
mov edi, 0x32
jmp 0x660eb995
mov ebp, dword [esp + 0x44]
mov edi, 0xe
mov ebx, ebp
jmp 0x660eb995
mov eax, dword [esp + 0xac]
mov edi, 0x53
mov dword [esp + 0x48], eax
jmp 0x660eb995