Function at 0x62aa4cbf
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 0x62aa3c42
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 0x62aa3c57
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x18], eax
jae 0x62aa3c73
mov eax, dword [ebp + 0x1c]
mov ebx, 0xfffffffd
mov dword [eax], 0
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp 0x62aa573f
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.0x62aa3cc9.4
jmp dword [eax*4 + 0x62b25764]
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 0x62aa3d3c
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 0x62aa3e9c
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 0x62aa3d8b
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 0x62aa3dc9
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 0x62aa3da0
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0xc4]
jb 0x62aa3dd4
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 0x62aa554c
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 0x62aa3e19
and esi, 0x20
jne 0x62aa3e19
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 0x62aa3e52
shr ecx, 4
mov eax, 1
add ecx, 8
mov edx, 1
shl eax, cl
cmp eax, 0x8000
ja 0x62aa3e4a
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 0x62aa3eec
jmp 0x62aa3e73
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 0x62aa5549
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 0x62aa3ec7
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 0x62aa554c
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 0x62aa3e9c
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 0x62aa42d2
jmp 0x62aa3f81
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 0x62aa3f5c
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 0x62aa554c
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 0x62aa3f31
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 0x62aa4064
jmp 0x62aa4023
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 0x62aa3ffe
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 0x62aa554c
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 0x62aa3fd3
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 0x62aa40b4
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 0x62aa408f
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 0x62aa554c
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 0x62aa3fb2
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 0x62aa41e7
jmp 0x62aa4109
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 0x62aa5549
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 0x62aa4154
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 0x62aa554c
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 0x62aa4129
movzx eax, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
mov dword [ebp - 0xc8], eax
jmp 0x62aa41b1
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 0x62aa41ca
mov eax, dword [ebp + 8]
mov dword [eax], 0x34
jmp 0x62aa422f
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 0x62aa42c0
cmp dword [ebp - 0xac], 0
jne 0x62aa4179
jmp 0x62aa42c0
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 0x62aa424b
mov eax, dword [ebp + 8]
mov dword [eax], 9
mov ebx, 2
jmp 0x62aa554c
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 0x62aa4276
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 0x62aa554c
mov edx, dword [ebp - 0xd0]
mov eax, esi
sub edx, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xb0]
cmp eax, edx
jbe 0x62aa4290
mov eax, edx
cmp eax, dword [ebp - 0xbc]
jbe 0x62aa429e
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 0x62aa4218
jmp 0x62aa5306
cmp eax, 3
jne 0x62aa42f9
jmp 0x62aa42eb
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 0x62aa5549
dec eax
jne 0x62aa4365
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 0x62aa4320
mov ebx, dword [ebp + 8]
mov byte [ebx + eax + 0x40], 9
inc eax
cmp eax, 0x100
jne 0x62aa4330
mov edi, dword [ebp + 8]
mov byte [edi + eax + 0x40], 7
inc eax
cmp eax, 0x118
jne 0x62aa4340
mov esi, dword [ebp + 8]
mov byte [esi + eax + 0x40], 8
inc eax
cmp eax, 0x120
jne 0x62aa4350
jmp 0x62aa48a9
mov dword [ebp - 0xbc], 0
jmp 0x62aa43d3
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 0x62aa43ae
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 0x62aa554c
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 + 0x62b2575b]
cmp eax, dword [ebp - 0xac]
ja 0x62aa4383
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xbc]
inc dword [ebp - 0xbc]
mov esi, dword [ebp + 8]
movsx edx, byte [eax + 0x62b2575b]
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 + 0x62b3ff00]
shr dword [ebp - 0xb4], cl
mov dword [esi + edi*4 + 0x2c], eax
cmp dword [ebp - 0xbc], 2
jbe 0x62aa43d3
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 0x62aa44f3
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 0x62aa4491
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 0x62aa554c
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 0x62aa4466
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
inc dword [ebp - 0xbc]
movzx eax, byte [eax + 0x62b40360]
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 0x62aa44b6
mov dword [eax + 0x34], 0x13
jmp 0x62aa48a9
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 0x62aa5549
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 0x62aa456a
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 0x62aa554c
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 0x62aa469c
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [edi + eax*2 + 0x1ca0]
test eax, eax
js 0x62aa45ce
sar eax, 9
je 0x62aa453f
cmp dword [ebp - 0xac], eax
jae 0x62aa469c
jmp 0x62aa453f
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa453f
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 0x62aa469c
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa45e0
jmp 0x62aa453f
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 0x62aa461b
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xc8], eax
cmp eax, 0xf
jg 0x62aa46cd
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 0x62aa4860
cmp dword [ebp - 0xac], 0xe
jbe 0x62aa480c
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 0x62aa4616
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa463f
cmp dword [ebp - 0xc8], 0x10
jne 0x62aa4715
cmp dword [ebp - 0xbc], 0
jne 0x62aa4715
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], 0x10
jmp 0x62aa4707
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 0x62aa5549
movsx eax, byte [eax + 0x62b25579]
cmp dword [ebp - 0xac], eax
mov dword [ebp - 0xc0], eax
jmp 0x62aa4798
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 0x62aa4767
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 0x62aa554c
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 0x62aa473c
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 + 0x62b2574f]
shr dword [ebp - 0xb4], cl
add edx, eax
sub dword [ebp - 0xac], esi
xor eax, eax
cmp dword [ebp - 0xc8], 0x10
jne 0x62aa47eb
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 0x62aa4677
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jle 0x62aa459e
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 0x62aa469c
jne 0x62aa4876
jmp 0x62aa4884
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 0x62aa5549
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 0x62aa4ae8
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 0x62aa4948
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 0x62aa4920
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 0x62aa495f
cmp eax, 0x10000
je 0x62aa4986
cmp ecx, 1
ja 0x62aa451f
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 0x62aa4ab5
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd4]
movzx edx, byte [eax + esi + 0x40]
mov ecx, edx
test edx, edx
je 0x62aa4aaa
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 0x62aa49db
cmp edx, 0xa
ja 0x62aa4a29
mov edx, ecx
mov esi, 1
shl edx, 9
shl esi, cl
or edx, dword [ebp - 0xd4]
mov ecx, esi
cmp eax, 0x3ff
ja 0x62aa4aaa
mov esi, dword [ebp - 0xe0]
mov word [esi + eax*2 + 0x160], dx
add eax, ecx
jmp 0x62aa4a0c
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 0x62aa4a53
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 0x62aa4a90
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 0x62aa4a8d
mov word [eax + 0x960], di
mov ecx, edi
sub edi, 2
dec edx
jmp 0x62aa4a58
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 0x62aa499f
cmp dword [ebp - 0xec], 2
jne 0x62aa48a3
mov dword [ebp - 0xbc], 0
jmp 0x62aa4677
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 0x62aa4b11
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xb8]
dec eax
jg 0x62aa4cf1
jmp 0x62aa4c06
cmp dword [ebp - 0xac], 0xe
ja 0x62aa4c4b
dec eax
jg 0x62aa4c0f
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [esi + eax*2 + 0x160]
test eax, eax
js 0x62aa4b52
sar eax, 9
je 0x62aa4ba5
cmp dword [ebp - 0xac], eax
jae 0x62aa4c4b
jmp 0x62aa4ba5
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa4ba5
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 0x62aa4c4b
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa4b60
jmp 0x62aa4ba5
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 0x62aa4bd0
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 0x62aa554c
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 0x62aa4b25
jmp 0x62aa4c4b
cmp dword [ebp - 0xac], 0xe
ja 0x62aa4c4b
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 0x62aa4c75
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa4c9e
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 0x62aa4c7a
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xbc], eax
cmp eax, 0xff
jg 0x62aa4e3e
jmp 0x62aa4cd1
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 0x62aa4ad1
mov eax, dword [ebp + 8]
mov dword [eax], 0x18
jmp 0x62aa422f
cmp dword [ebp - 0xac], 0xe
ja 0x62aa4d1f
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 0x62aa4d40
mov eax, edx
sar eax, 9
jmp 0x62aa4d69
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 0x62aa4d45
mov cl, al
sub dword [ebp - 0xac], eax
shr dword [ebp - 0xb4], cl
bt edx, 8
mov dword [ebp - 0xbc], edx
jb 0x62aa4e3e
cmp dword [ebp - 0xac], 0xe
ja 0x62aa4db5
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 0x62aa4dd6
mov ebx, eax
sar ebx, 9
jmp 0x62aa4dff
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 0x62aa4ddb
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 0x62aa4e29
inc dword [ebp - 0xb8]
mov dword [ebp - 0xbc], eax
jmp 0x62aa4e3e
mov edx, dword [ebp - 0xb8]
add dword [ebp - 0xb8], 2
mov byte [edx + 1], al
jmp 0x62aa4ae8
and dword [ebp - 0xbc], 0x1ff
cmp dword [ebp - 0xbc], 0x100
je 0x62aa5306
mov eax, dword [ebp - 0xbc]
sub eax, 0x101
mov ebx, dword [eax*4 + 0x62b3fe80]
mov eax, dword [eax*4 + 0x62b3fe00]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], eax
test ebx, ebx
je 0x62aa4f29
cmp dword [ebp - 0xac], ebx
jmp 0x62aa4efb
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 0x62aa4eca
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 0x62aa554c
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 0x62aa4e9f
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 0x62aa5066
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jg 0x62aa502a
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0xf00]
test eax, eax
js 0x62aa4f76
sar eax, 9
je 0x62aa4fc9
cmp dword [ebp - 0xac], eax
jae 0x62aa5066
jmp 0x62aa4fc9
cmp dword [ebp - 0xac], 0xa
jbe 0x62aa4fc9
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 0x62aa5066
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x62aa4f84
jmp 0x62aa4fc9
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 0x62aa4ff4
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 0x62aa554c
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 0x62aa4f49
jmp 0x62aa5066
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 0x62aa5090
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x62aa50b9
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 0x62aa5095
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov ecx, dword [eax*4 + 0x62b3fd20]
mov eax, dword [eax*4 + 0x62b3fca0]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc8], eax
test ecx, ecx
je 0x62aa518d
cmp dword [ebp - 0xac], ecx
jmp 0x62aa515f
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 0x62aa512e
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 0x62aa554c
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 0x62aa5103
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 0x62aa51e4
cmp dword [ebp - 0xe8], 0
je 0x62aa51e4
jmp 0x62aa51d6
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 0x62aa5549
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 0x62aa5205
mov edx, eax
add edx, dword [ebp - 0xbc]
cmp dword [ebp - 0xd0], edx
jb 0x62aa527c
jmp 0x62aa529d
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 0x62aa5246
mov eax, dword [ebp + 8]
mov dword [eax], 0x35
jmp 0x62aa422f
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 0x62aa4ae8
dec eax
mov dword [ebp - 0xbc], eax
jmp 0x62aa522a
cmp dword [ebp - 0xbc], 2
jbe 0x62aa52cf
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 0x62aa529d
cmp dword [ebp - 0xbc], 0
je 0x62aa4ae8
mov ebx, dword [ebp - 0xb8]
mov dl, byte [eax]
cmp dword [ebp - 0xbc], 2
mov byte [ebx], dl
jne 0x62aa52f5
mov al, byte [eax + 1]
mov byte [ebx + 1], al
mov ecx, dword [ebp - 0xbc]
add dword [ebp - 0xb8], ecx
jmp 0x62aa4ae8
mov eax, dword [ebp + 8]
test byte [eax + 0x14], 1
je 0x62aa3eec
jmp 0x62aa5377
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 0x62aa5352
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 0x62aa554c
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 0x62aa5327
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 0x62aa53c3
cmp dword [ebp - 0xac], 7
jbe 0x62aa53c3
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x62aa53a0
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 0x62aa5401
mov dword [esp + 8], 0xaed
mov dword [esp + 4], 0x62b25538
mov dword [esp], 0x62b25751
call sym.__assert
test byte [ebp + 0x20], 1
je 0x62aa552a
mov dword [ebp - 0xbc], 0
jmp 0x62aa54f0
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 0x62aa5457
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 0x62aa554c
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 0x62aa542c
movzx edx, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
jmp 0x62aa54c1
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
jmp 0x62aa54f0
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 0x62aa552a
cmp dword [ebp - 0xac], 0
jne 0x62aa547c
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ecx
jb 0x62aa54b0
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 0x62aa554c
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 0x62aa554c
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 0x62aa5579
cmp ebx, 0xfffffffc
je 0x62aa5579
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp + 0xc]
jbe 0x62aa5579
cmp dword [ebp - 0xac], 7
jbe 0x62aa5579
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x62aa5556
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 0x62aa573f
test ebx, ebx
js 0x62aa573f
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 0x62aa5719
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 0x62aa5699
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 0x62aa563e
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 0x62aa56d1
movzx eax, byte [esi + edx]
add edi, eax
inc edx
add dword [ebp - 0xac], edi
jmp 0x62aa56be
xor edx, edx
cmp ecx, dword [ebp - 0xb4]
jb 0x62aa56e3
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 0x62aa5621
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 0x62aa573f
test byte [ebp + 0x20], 1
je 0x62aa573f
cmp esi, dword [eax + 0x10]
je 0x62aa573f
mov ebx, 0xfffffffe
add esp, 0xfc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret