Function at 0x62aa2544
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xfc
mov dword [ebp - 0xd8], 0xffffffff
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x18]
add eax, dword [edi]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
add esi, eax
mov dword [ebp - 0xd0], esi
mov esi, dword [ebp + 0x20]
and esi, 4
mov dword [ebp - 0xe8], esi
jne 0x62aa24b6
mov edx, dword [ebp + 0x18]
sub edx, dword [ebp + 0x14]
lea eax, [eax + edx - 1]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
lea edi, [eax + 1]
test eax, edi
jne 0x62aa24cb
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x18], eax
jae 0x62aa24e7
mov eax, dword [ebp + 0x1c]
mov ebx, 0xfffffffd
mov dword [eax], 0
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp 0x62aa3fb3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, 0x35
ja case.0x62aa253d.4
jmp dword [eax*4 + 0x62b23484]
mov esi, dword [ebp + 8]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x1c], 1
mov dword [esi + 0x10], 1
mov esi, dword [ebp + 0x20]
and esi, 1
mov dword [ebp - 0xac], esi
jne 0x62aa25b0
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], 0
jmp 0x62aa2710
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc4]
cmp dword [ebp + 0xc], eax
jb 0x62aa25ff
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 1
mov eax, dword [ebp + 0x18]
inc ebx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
jmp 0x62aa263d
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
inc eax
movzx edx, byte [esi]
mov esi, dword [ebp + 8]
mov dword [esi + 8], edx
jmp 0x62aa2614
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0xc4]
jb 0x62aa2648
mov edx, dword [ebp + 0x20]
mov edi, dword [ebp + 8]
and edx, 2
cmp edx, 1
mov dword [edi], 2
sbb ebx, ebx
mov edi, dword [ebp + 0x18]
and ebx, 0xfffffffb
mov dword [ebp - 0xb8], edi
inc ebx
mov dword [ebp - 0xb0], eax
jmp 0x62aa3dc0
lea esi, [eax + 1]
mov ebx, 0x1f
mov dword [ebp - 0xb0], esi
movzx esi, byte [eax]
mov eax, esi
movzx edx, al
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov dword [eax + 0xc], edx
mov eax, ecx
shl eax, 8
add eax, edx
xor edx, edx
div ebx
test edx, edx
mov ebx, 1
jne 0x62aa268d
and esi, 0x20
jne 0x62aa268d
mov eax, ecx
xor ebx, ebx
and eax, 0xf
cmp eax, 8
setne bl
cmp dword [ebp - 0xe8], 0
mov dword [ebp - 0xbc], ebx
jne 0x62aa26c6
shr ecx, 4
mov eax, 1
add ecx, 8
mov edx, 1
shl eax, cl
cmp eax, 0x8000
ja 0x62aa26be
xor edx, edx
shr edi, cl
test edi, edi
sete dl
or ebx, edx
mov dword [ebp - 0xbc], ebx
mov eax, dword [ebp + 0x18]
cmp dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], eax
je 0x62aa2760
jmp 0x62aa26e7
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x24
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
jmp 0x62aa3dbd
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa273b
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 3
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 2
jbe 0x62aa2710
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 7
shr dword [ebp - 0xb4], 3
sub dword [ebp - 0xac], 3
mov dword [edi + 0x14], eax
shr eax, 1
mov dword [edi + 0x18], eax
jne 0x62aa2b46
jmp 0x62aa27f5
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa27d0
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 5
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
and eax, 7
cmp eax, dword [ebp - 0xac]
ja 0x62aa27a5
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xbc], 0
and ecx, 7
shr dword [ebp - 0xb4], cl
and dword [ebp - 0xac], 0xfffffff8
cmp dword [ebp - 0xac], 0
je 0x62aa28d8
jmp 0x62aa2897
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa2872
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 6
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 7
jbe 0x62aa2847
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0xbc]
mov al, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
mov byte [esi + ebx + 0x2920], al
jmp 0x62aa2928
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa2903
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 7
inc ebx
jmp 0x62aa3dc0
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0xbc]
mov al, byte [eax]
mov byte [esi + ebx + 0x2920], al
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
inc dword [ebp - 0xbc]
cmp dword [ebp - 0xbc], 3
jbe 0x62aa2826
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x2920]
mov edx, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x2922]
mov word [ebp - 0xd4], ax
not eax
cmp dx, ax
je 0x62aa2a5b
jmp 0x62aa297d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x27
jmp 0x62aa3dbd
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa29c8
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x33
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 7
jbe 0x62aa299d
movzx eax, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
mov dword [ebp - 0xc8], eax
jmp 0x62aa2a25
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov esi, dword [ebp - 0xd0]
cmp dword [ebp - 0xb8], esi
jb 0x62aa2a3e
mov eax, dword [ebp + 8]
mov dword [eax], 0x34
jmp 0x62aa2aa3
mov ebx, dword [ebp - 0xb8]
mov al, byte [ebp - 0xc8]
dec dword [ebp - 0xbc]
mov byte [ebx], al
mov eax, ebx
inc eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xbc], 0
je 0x62aa2b34
cmp dword [ebp - 0xac], 0
jne 0x62aa29ed
jmp 0x62aa2b34
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xd0]
cmp dword [ebp - 0xb8], edi
jb 0x62aa2abf
mov eax, dword [ebp + 8]
mov dword [eax], 9
mov ebx, 2
jmp 0x62aa3dc0
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov esi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], esi
jb 0x62aa2aea
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x26
inc ebx
jmp 0x62aa3dc0
mov edx, dword [ebp - 0xd0]
mov eax, esi
sub edx, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xb0]
cmp eax, edx
jbe 0x62aa2b04
mov eax, edx
cmp eax, dword [ebp - 0xbc]
jbe 0x62aa2b12
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xb8]
mov esi, dword [ebp - 0xb0]
mov ecx, eax
sub dword [ebp - 0xbc], eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xb8], edi
cmp dword [ebp - 0xbc], 0
jne 0x62aa2a8c
jmp 0x62aa3b7a
cmp eax, 3
jne 0x62aa2b6d
jmp 0x62aa2b5f
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0xa
jmp 0x62aa3dbd
dec eax
jne 0x62aa2bd9
mov eax, dword [ebp + 8]
mov ecx, 0x20
lea edx, [eax + 0xde0]
mov dword [eax + 0x2c], 0x120
mov dword [eax + 0x30], 0x20
mov edi, edx
mov al, 5
rep stosb byte es:[edi], al
xor eax, eax
mov esi, dword [ebp + 8]
mov byte [esi + eax + 0x40], 8
inc eax
cmp eax, 0x90
jne 0x62aa2b94
mov ebx, dword [ebp + 8]
mov byte [ebx + eax + 0x40], 9
inc eax
cmp eax, 0x100
jne 0x62aa2ba4
mov edi, dword [ebp + 8]
mov byte [edi + eax + 0x40], 7
inc eax
cmp eax, 0x118
jne 0x62aa2bb4
mov esi, dword [ebp + 8]
mov byte [esi + eax + 0x40], 8
inc eax
cmp eax, 0x120
jne 0x62aa2bc4
jmp 0x62aa311d
mov dword [ebp - 0xbc], 0
jmp 0x62aa2c47
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa2c22
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0xb
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xbc]
movsx eax, byte [eax + 0x62b2347b]
cmp eax, dword [ebp - 0xac]
ja 0x62aa2bf7
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xbc]
inc dword [ebp - 0xbc]
mov esi, dword [ebp + 8]
movsx edx, byte [eax + 0x62b2347b]
mov eax, 1
mov ecx, edx
shl eax, cl
dec eax
sub dword [ebp - 0xac], edx
and eax, dword [ebp - 0xb4]
add eax, dword [edi*4 + 0x62b3dbe0]
shr dword [ebp - 0xb4], cl
mov dword [esi + edi*4 + 0x2c], eax
cmp dword [ebp - 0xbc], 2
jbe 0x62aa2c47
lea edx, [esi + 0x1b80]
mov ecx, 0x48
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0xbc], 0
jmp 0x62aa2d67
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa2d05
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0xe
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 2
jbe 0x62aa2cda
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
inc dword [ebp - 0xbc]
movzx eax, byte [eax + 0x62b3e040]
shr dword [ebp - 0xb4], 3
sub dword [ebp - 0xac], 3
and edx, 7
mov byte [esi + eax + 0x1b80], dl
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0xbc]
cmp dword [eax + 0x34], ebx
ja 0x62aa2d2a
mov dword [eax + 0x34], 0x13
jmp 0x62aa311d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x23
jmp 0x62aa3dbd
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa2dde
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x10
inc ebx
jmp 0x62aa3dc0
mov eax, dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
add dword [ebp - 0xac], 8
lea edx, [eax + 1]
movzx eax, byte [eax]
shl eax, cl
or dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xac], 0xe
ja 0x62aa2f10
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [edi + eax*2 + 0x1ca0]
test eax, eax
js 0x62aa2e42
sar eax, 9
je 0x62aa2db3
cmp dword [ebp - 0xac], eax
jae 0x62aa2f10
jmp 0x62aa2db3
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa2db3
mov edx, 0xa
mov ecx, edx
mov ebx, dword [ebp - 0xb4]
shr ebx, cl
and ebx, 1
mov esi, dword [ebp + 8]
not eax
inc edx
lea eax, [ebx + eax + 0x1250]
movsx eax, word [esi + eax*2]
test eax, eax
jns 0x62aa2f10
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa2e54
jmp 0x62aa2db3
mov edx, 0xa
mov ecx, edx
mov edi, dword [ebp - 0xb4]
shr edi, cl
mov ecx, edi
mov esi, dword [ebp + 8]
and ecx, 1
inc edx
not eax
lea eax, [ecx + eax + 0x1250]
movsx eax, word [esi + eax*2]
test eax, eax
js 0x62aa2e8f
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xc8], eax
cmp eax, 0xf
jg 0x62aa2f41
mov esi, dword [ebp - 0xbc]
mov edi, dword [ebp + 8]
mov al, byte [ebp - 0xc8]
mov byte [edi + esi + 0x2924], al
mov eax, esi
inc eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
lea edx, [ecx + eax]
cmp edx, dword [ebp - 0xbc]
jbe 0x62aa30d4
cmp dword [ebp - 0xac], 0xe
jbe 0x62aa3080
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [edi + eax*2 + 0x1ca0]
mov ecx, eax
test eax, eax
js 0x62aa2e8a
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa2eb3
cmp dword [ebp - 0xc8], 0x10
jne 0x62aa2f89
cmp dword [ebp - 0xbc], 0
jne 0x62aa2f89
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], 0x10
jmp 0x62aa2f7b
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x11
jmp 0x62aa3dbd
movsx eax, byte [eax + 0x62b23299]
cmp dword [ebp - 0xac], eax
mov dword [ebp - 0xc0], eax
jmp 0x62aa300c
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov ebx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ebx
jb 0x62aa2fdb
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x12
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xc0]
jb 0x62aa2fb0
mov cl, byte [ebp - 0xc0]
mov edx, 1
shl edx, cl
mov eax, dword [ebp - 0xc8]
dec edx
and edx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xc0]
movsx eax, byte [eax + 0x62b2346f]
shr dword [ebp - 0xb4], cl
add edx, eax
sub dword [ebp - 0xac], esi
xor eax, eax
cmp dword [ebp - 0xc8], 0x10
jne 0x62aa305f
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0xbc]
movzx eax, byte [eax + edi + 0x2923]
mov ebx, dword [ebp - 0xbc]
mov esi, dword [ebp + 8]
mov ecx, edx
add dword [ebp - 0xbc], edx
lea ebx, [esi + ebx + 0x2924]
mov edi, ebx
rep stosb byte es:[edi], al
jmp 0x62aa2eeb
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jle 0x62aa2e12
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xb0]
movzx eax, byte [eax + 1]
lea ecx, [esi + 8]
movzx edx, byte [ebx]
shl eax, cl
mov cl, byte [ebp - 0xac]
shl edx, cl
or eax, edx
or dword [ebp - 0xb4], eax
add dword [ebp - 0xb0], 2
add dword [ebp - 0xac], 0x10
jmp 0x62aa2f10
jne 0x62aa30ea
jmp 0x62aa30f8
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x15
jmp 0x62aa3dbd
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 8]
add esi, 0x2924
lea edx, [ebx + 0x40]
mov edi, edx
lea edx, [ebx + 0xde0]
rep movsb byte es:[edi], byte [esi]
mov edi, edx
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 8]
dec dword [eax + 0x18]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x18]
test esi, esi
js 0x62aa335c
lea edx, [ebp - 0x9c]
xor eax, eax
mov edi, edx
mov ecx, 0x10
imul edx, esi, 0xda0
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
mov ecx, 0x200
mov dword [ebp - 0xdc], 0
lea ebx, [edi + edx + 0x160]
mov edi, ebx
mov ebx, dword [ebp + 8]
rep stosd dword es:[edi], eax
lea ebx, [ebx + edx + 0x960]
mov ecx, 0x120
mov edi, ebx
add edx, dword [ebp + 8]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe0], edx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0xec]
mov eax, dword [eax + edi*4 + 0x2c]
cmp eax, dword [ebp - 0xdc]
je 0x62aa31bc
mov edi, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xe0]
inc dword [ebp - 0xdc]
movzx edx, byte [ebx + edi + 0x40]
inc dword [ebp + edx*4 - 0x9c]
jmp 0x62aa3194
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], 0
xor eax, eax
xor ecx, ecx
mov edx, 1
mov ebx, dword [ebp + edx*4 - 0x9c]
inc edx
add eax, ebx
add ecx, ebx
add eax, eax
cmp edx, 0x10
mov dword [ebp + edx*4 - 0x5c], eax
jne 0x62aa31d3
cmp eax, 0x10000
je 0x62aa31fa
cmp ecx, 1
ja 0x62aa2d93
imul eax, esi, 0x6d0
mov dword [ebp - 0xd4], 0
or edi, 0xffffffff
mov dword [ebp - 0xe4], eax
mov esi, dword [ebp - 0xd4]
cmp dword [ebp - 0xdc], esi
je 0x62aa3329
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd4]
movzx edx, byte [eax + esi + 0x40]
mov ecx, edx
test edx, edx
je 0x62aa331e
mov ebx, dword [ebp + edx*4 - 0x5c]
mov esi, edx
lea eax, [ebx + 1]
mov dword [ebp + edx*4 - 0x5c], eax
xor eax, eax
add eax, eax
mov dword [ebp - 0xf0], eax
mov eax, ebx
shr ebx, 1
and eax, 1
or eax, dword [ebp - 0xf0]
dec esi
jne 0x62aa324f
cmp edx, 0xa
ja 0x62aa329d
mov edx, ecx
mov esi, 1
shl edx, 9
shl esi, cl
or edx, dword [ebp - 0xd4]
mov ecx, esi
cmp eax, 0x3ff
ja 0x62aa331e
mov esi, dword [ebp - 0xe0]
mov word [esi + eax*2 + 0x160], dx
add eax, ecx
jmp 0x62aa3280
mov ebx, eax
and ebx, 0x3ff
add ebx, dword [ebp - 0xe4]
add ebx, ebx
add ebx, dword [ebp + 8]
movsx ecx, word [ebx + 0x160]
test ecx, ecx
jne 0x62aa32c7
mov word [ebx + 0x160], di
mov ecx, edi
sub edi, 2
shr eax, 9
mov esi, eax
shr esi, 1
mov eax, esi
and eax, 1
sub ecx, eax
cmp edx, 0xb
not ecx
je 0x62aa3304
add ecx, dword [ebp - 0xe4]
mov eax, dword [ebp + 8]
add ecx, ecx
add eax, ecx
movsx ecx, word [eax + 0x960]
test cx, cx
jne 0x62aa3301
mov word [eax + 0x960], di
mov ecx, edi
sub edi, 2
dec edx
jmp 0x62aa32cc
mov eax, dword [ebp - 0xe4]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0xd4]
lea eax, [ecx + eax + 0x4b0]
mov word [esi + eax*2], bx
inc dword [ebp - 0xd4]
jmp 0x62aa3213
cmp dword [ebp - 0xec], 2
jne 0x62aa3117
mov dword [ebp - 0xbc], 0
jmp 0x62aa2eeb
mov esi, dword [ebp - 0xb8]
mov al, byte [ebp - 0xbc]
mov byte [esi], al
mov eax, esi
inc eax
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
cmp eax, 3
jle 0x62aa3385
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xb8]
dec eax
jg 0x62aa3565
jmp 0x62aa347a
cmp dword [ebp - 0xac], 0xe
ja 0x62aa34bf
dec eax
jg 0x62aa3483
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [esi + eax*2 + 0x160]
test eax, eax
js 0x62aa33c6
sar eax, 9
je 0x62aa3419
cmp dword [ebp - 0xac], eax
jae 0x62aa34bf
jmp 0x62aa3419
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa3419
mov edx, 0xa
mov ecx, edx
mov ebx, dword [ebp - 0xb4]
shr ebx, cl
and ebx, 1
mov esi, dword [ebp + 8]
not eax
inc edx
lea eax, [ebx + eax + 0x4b0]
movsx eax, word [esi + eax*2]
test eax, eax
jns 0x62aa34bf
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa33d4
jmp 0x62aa3419
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa3444
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x17
inc ebx
jmp 0x62aa3dc0
mov eax, dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
add dword [ebp - 0xac], 8
lea edx, [eax + 1]
movzx eax, byte [eax]
shl eax, cl
or dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xac], 0xe
jbe 0x62aa3399
jmp 0x62aa34bf
cmp dword [ebp - 0xac], 0xe
ja 0x62aa34bf
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xac]
mov edx, dword [ebp - 0xb0]
movzx eax, byte [eax + 1]
lea ecx, [esi + 8]
movzx edx, byte [edx]
shl eax, cl
mov cl, byte [ebp - 0xac]
shl edx, cl
or eax, edx
or dword [ebp - 0xb4], eax
add dword [ebp - 0xb0], 2
add dword [ebp - 0xac], 0x10
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [ebx + eax*2 + 0x160]
mov ecx, eax
test eax, eax
js 0x62aa34e9
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa3512
mov edx, 0xa
mov ecx, edx
mov edi, dword [ebp - 0xb4]
shr edi, cl
mov ecx, edi
mov edi, dword [ebp + 8]
and ecx, 1
inc edx
not eax
lea eax, [ecx + eax + 0x4b0]
movsx eax, word [edi + eax*2]
test eax, eax
js 0x62aa34ee
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xbc], eax
cmp eax, 0xff
jg 0x62aa36b2
jmp 0x62aa3545
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xd0]
cmp dword [ebp - 0xb8], ecx
jb 0x62aa3345
mov eax, dword [ebp + 8]
mov dword [eax], 0x18
jmp 0x62aa2aa3
cmp dword [ebp - 0xac], 0xe
ja 0x62aa3593
mov eax, dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
add dword [ebp - 0xb0], 2
movzx eax, word [eax]
shl eax, cl
or dword [ebp - 0xb4], eax
add dword [ebp - 0xac], 0x10
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp + 8]
and eax, 0x3ff
movsx edx, word [edx + eax*2 + 0x160]
test edx, edx
js 0x62aa35b4
mov eax, edx
sar eax, 9
jmp 0x62aa35dd
mov eax, 0xa
mov ecx, eax
mov edi, dword [ebp - 0xb4]
shr edi, cl
mov ecx, edi
mov ebx, dword [ebp + 8]
and ecx, 1
inc eax
not edx
lea edx, [ecx + edx + 0x4b0]
movsx edx, word [ebx + edx*2]
test edx, edx
js 0x62aa35b9
mov cl, al
sub dword [ebp - 0xac], eax
shr dword [ebp - 0xb4], cl
bt edx, 8
mov dword [ebp - 0xbc], edx
jb 0x62aa36b2
cmp dword [ebp - 0xac], 0xe
ja 0x62aa3629
mov eax, dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
add dword [ebp - 0xb0], 2
movzx eax, word [eax]
shl eax, cl
or dword [ebp - 0xb4], eax
add dword [ebp - 0xac], 0x10
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [edi + eax*2 + 0x160]
test eax, eax
js 0x62aa364a
mov ebx, eax
sar ebx, 9
jmp 0x62aa3673
mov ebx, 0xa
mov ecx, ebx
mov edi, dword [ebp - 0xb4]
shr edi, cl
mov ecx, edi
inc ebx
and ecx, 1
not eax
lea eax, [ecx + eax + 0x4b0]
mov ecx, dword [ebp + 8]
movsx eax, word [ecx + eax*2]
test eax, eax
js 0x62aa364f
mov esi, dword [ebp - 0xb8]
mov cl, bl
shr dword [ebp - 0xb4], cl
sub dword [ebp - 0xac], ebx
mov byte [esi], dl
bt eax, 8
jae 0x62aa369d
inc dword [ebp - 0xb8]
mov dword [ebp - 0xbc], eax
jmp 0x62aa36b2
mov edx, dword [ebp - 0xb8]
add dword [ebp - 0xb8], 2
mov byte [edx + 1], al
jmp 0x62aa335c
and dword [ebp - 0xbc], 0x1ff
cmp dword [ebp - 0xbc], 0x100
je 0x62aa3b7a
mov eax, dword [ebp - 0xbc]
sub eax, 0x101
mov ebx, dword [eax*4 + 0x62b3db60]
mov eax, dword [eax*4 + 0x62b3dae0]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], eax
test ebx, ebx
je 0x62aa379d
cmp dword [ebp - 0xac], ebx
jmp 0x62aa376f
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ecx
jb 0x62aa373e
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x19
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xc0]
jb 0x62aa3713
mov cl, byte [ebp - 0xc0]
mov eax, 1
shl eax, cl
dec eax
mov ebx, dword [ebp - 0xc0]
and eax, dword [ebp - 0xb4]
sub dword [ebp - 0xac], ebx
shr dword [ebp - 0xb4], cl
add dword [ebp - 0xbc], eax
cmp dword [ebp - 0xac], 0xe
ja 0x62aa38da
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jg 0x62aa389e
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0xf00]
test eax, eax
js 0x62aa37ea
sar eax, 9
je 0x62aa383d
cmp dword [ebp - 0xac], eax
jae 0x62aa38da
jmp 0x62aa383d
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa383d
mov edx, 0xa
mov ecx, edx
mov ebx, dword [ebp - 0xb4]
shr ebx, cl
and ebx, 1
inc edx
not eax
lea eax, [ebx + eax + 0xb80]
mov ebx, dword [ebp + 8]
movsx eax, word [ebx + eax*2]
test eax, eax
jns 0x62aa38da
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa37f8
jmp 0x62aa383d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ecx
jb 0x62aa3868
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x1a
inc ebx
jmp 0x62aa3dc0
mov eax, dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
add dword [ebp - 0xac], 8
lea edx, [eax + 1]
movzx eax, byte [eax]
shl eax, cl
or dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xac], 0xe
jbe 0x62aa37bd
jmp 0x62aa38da
mov eax, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xac]
mov edx, dword [ebp - 0xb0]
movzx eax, byte [eax + 1]
lea ecx, [esi + 8]
movzx edx, byte [edx]
shl eax, cl
mov cl, byte [ebp - 0xac]
shl edx, cl
or eax, edx
or dword [ebp - 0xb4], eax
add dword [ebp - 0xb0], 2
add dword [ebp - 0xac], 0x10
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [ebx + eax*2 + 0xf00]
mov ecx, eax
test eax, eax
js 0x62aa3904
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa392d
mov edx, 0xa
mov ecx, edx
mov edi, dword [ebp - 0xb4]
shr edi, cl
mov ecx, edi
mov edi, dword [ebp + 8]
and ecx, 1
inc edx
not eax
lea eax, [ecx + eax + 0xb80]
movsx eax, word [edi + eax*2]
test eax, eax
js 0x62aa3909
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov ecx, dword [eax*4 + 0x62b3da00]
mov eax, dword [eax*4 + 0x62b3d980]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc8], eax
test ecx, ecx
je 0x62aa3a01
cmp dword [ebp - 0xac], ecx
jmp 0x62aa39d3
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edx
jb 0x62aa39a2
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x1b
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xc0]
jb 0x62aa3977
mov cl, byte [ebp - 0xc0]
mov eax, 1
shl eax, cl
dec eax
and eax, dword [ebp - 0xb4]
shr dword [ebp - 0xb4], cl
mov ecx, dword [ebp - 0xc0]
add dword [ebp - 0xc8], eax
sub dword [ebp - 0xac], ecx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp + 0x14]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0xc8], 0
sete dl
cmp eax, dword [ebp - 0xcc]
seta al
or dl, al
je 0x62aa3a58
cmp dword [ebp - 0xe8], 0
je 0x62aa3a58
jmp 0x62aa3a4a
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov dword [eax], 0x25
jmp 0x62aa3dbd
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc8]
and eax, dword [ebp - 0xd8]
add eax, dword [ebp + 0x14]
cmp eax, edx
jbe 0x62aa3a79
mov edx, eax
add edx, dword [ebp - 0xbc]
cmp dword [ebp - 0xd0], edx
jb 0x62aa3af0
jmp 0x62aa3b11
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xd0]
cmp dword [ebp - 0xb8], edx
jb 0x62aa3aba
mov eax, dword [ebp + 8]
mov dword [eax], 0x35
jmp 0x62aa2aa3
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp + 0x14]
sub eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xb8]
and eax, dword [ebp - 0xd8]
mov al, byte [ecx + eax]
mov byte [esi], al
mov eax, dword [ebp - 0xcc]
inc eax
mov dword [ebp - 0xcc], eax
mov eax, esi
inc eax
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xbc], 0xffffffff
test eax, eax
je 0x62aa335c
dec eax
mov dword [ebp - 0xbc], eax
jmp 0x62aa3a9e
cmp dword [ebp - 0xbc], 2
jbe 0x62aa3b43
mov ebx, dword [ebp - 0xb8]
mov dl, byte [eax]
add dword [ebp - 0xb8], 3
mov byte [ebx], dl
add eax, 3
mov dl, byte [eax - 2]
mov byte [ebx + 1], dl
mov dl, byte [eax - 1]
sub dword [ebp - 0xbc], 3
mov byte [ebx + 2], dl
jmp 0x62aa3b11
cmp dword [ebp - 0xbc], 0
je 0x62aa335c
mov ebx, dword [ebp - 0xb8]
mov dl, byte [eax]
cmp dword [ebp - 0xbc], 2
mov byte [ebx], dl
jne 0x62aa3b69
mov al, byte [eax + 1]
mov byte [ebx + 1], al
mov ecx, dword [ebp - 0xbc]
add dword [ebp - 0xb8], ecx
jmp 0x62aa335c
mov eax, dword [ebp + 8]
test byte [eax + 0x14], 1
je 0x62aa2760
jmp 0x62aa3beb
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edx
jb 0x62aa3bc6
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x20
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xac]
and eax, 7
cmp eax, dword [ebp - 0xac]
ja 0x62aa3b9b
mov ecx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xb4]
and dword [ebp - 0xac], 0xfffffff8
and ecx, 7
shr ebx, cl
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp + 0xc]
jbe 0x62aa3c37
cmp dword [ebp - 0xac], 7
jbe 0x62aa3c37
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x62aa3c14
mov cl, byte [ebp - 0xac]
xor eax, eax
test cl, 0x20
sete al
shl eax, cl
dec eax
and eax, ebx
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 0
je 0x62aa3c75
mov dword [esp + 8], 0xaed
mov dword [esp + 4], 0x62b23258
mov dword [esp], 0x62b23471
call sym.__assert
test byte [ebp + 0x20], 1
je 0x62aa3d9e
mov dword [ebp - 0xbc], 0
jmp 0x62aa3d64
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], edi
jb 0x62aa3ccb
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x29
inc ebx
jmp 0x62aa3dc0
inc dword [ebp - 0xb0]
mov cl, byte [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
add dword [ebp - 0xac], 8
movzx eax, byte [eax - 1]
shl eax, cl
or dword [ebp - 0xb4], eax
cmp dword [ebp - 0xac], 7
jbe 0x62aa3ca0
movzx edx, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
jmp 0x62aa3d35
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
jmp 0x62aa3d64
mov eax, dword [ebp - 0xb0]
inc eax
movzx edx, byte [eax - 1]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
inc dword [ebp - 0xbc]
mov eax, dword [eax + 0x10]
mov esi, dword [ebp + 8]
mov dword [ebp - 0xd0], eax
shl eax, 8
or eax, edx
mov dword [esi + 0x10], eax
cmp dword [ebp - 0xbc], 3
ja 0x62aa3d9e
cmp dword [ebp - 0xac], 0
jne 0x62aa3cf0
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ecx
jb 0x62aa3d24
mov eax, dword [ebp + 0x20]
and eax, 2
cmp eax, 1
mov eax, dword [ebp + 8]
sbb ebx, ebx
and ebx, 0xfffffffb
mov dword [eax], 0x2a
inc ebx
jmp 0x62aa3dc0
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [eax], 0x22
jmp 0x62aa3dc0
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
or ebx, 0xffffffff
cmp ebx, 1
je 0x62aa3ded
cmp ebx, 0xfffffffc
je 0x62aa3ded
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp + 0xc]
jbe 0x62aa3ded
cmp dword [ebp - 0xac], 7
jbe 0x62aa3ded
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x62aa3dca
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xac]
mov cl, byte [ebp - 0xac]
mov esi, dword [ebp - 0xc8]
mov dword [eax + 4], edx
xor eax, eax
test cl, 0x20
sete al
shl eax, cl
dec eax
mov ecx, dword [ebp + 8]
and eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xbc]
mov dword [ecx + 0x38], eax
mov edi, dword [ebp - 0xc0]
mov eax, ecx
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], edi
mov ecx, dword [ebp - 0xcc]
mov esi, dword [ebp + 0x10]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp - 0xb0]
sub eax, dword [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp + 0x18]
test byte [ebp + 0x20], 9
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
je 0x62aa3fb3
test ebx, ebx
js 0x62aa3fb3
mov eax, dword [ebp + 8]
mov ecx, 0x15b0
mov eax, dword [eax + 0x1c]
movzx edi, ax
shr eax, 0x10
mov dword [ebp - 0xac], eax
mov eax, edx
xor edx, edx
div ecx
mov ecx, edx
cmp dword [ebp - 0xb0], 0
je 0x62aa3f8d
mov edx, dword [ebp + 0x18]
mov eax, 7
sub eax, edx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
add eax, edx
cmp ecx, eax
jbe 0x62aa3f0d
movzx eax, byte [edx]
movzx esi, byte [edx + 1]
add edi, eax
add edx, 8
add esi, edi
lea eax, [edi + esi]
movzx edi, byte [edx - 6]
add eax, dword [ebp - 0xac]
add esi, edi
movzx edi, byte [edx - 5]
add eax, esi
add esi, edi
movzx edi, byte [edx - 4]
add eax, esi
add esi, edi
movzx edi, byte [edx - 3]
add eax, esi
add esi, edi
movzx edi, byte [edx - 2]
add eax, esi
add esi, edi
movzx edi, byte [edx - 1]
add eax, esi
add edi, esi
add eax, edi
mov dword [ebp - 0xac], eax
jmp 0x62aa3eb2
mov eax, ecx
and eax, 0x1ff8
add eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, ecx
and eax, 0xfffffff8
mov esi, dword [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
mov edx, eax
sub esi, eax
cmp edx, ecx
jae 0x62aa3f45
movzx eax, byte [esi + edx]
add edi, eax
inc edx
add dword [ebp - 0xac], edi
jmp 0x62aa3f32
xor edx, edx
cmp ecx, dword [ebp - 0xb4]
jb 0x62aa3f57
mov edx, ecx
sub edx, dword [ebp - 0xb4]
add edx, dword [ebp - 0xb8]
mov esi, 0xfff1
mov eax, edi
mov dword [ebp + 0x18], edx
xor edx, edx
sub dword [ebp - 0xb0], ecx
div esi
mov edi, edx
mov eax, dword [ebp - 0xac]
xor edx, edx
mov ecx, 0x15b0
div esi
mov dword [ebp - 0xac], edx
jmp 0x62aa3e95
mov eax, dword [ebp - 0xac]
shl eax, 0x10
test ebx, ebx
lea esi, [eax + edi]
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], esi
jne 0x62aa3fb3
test byte [ebp + 0x20], 1
je 0x62aa3fb3
cmp esi, dword [eax + 0x10]
je 0x62aa3fb3
mov ebx, 0xfffffffe
add esp, 0xfc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret