Function at 0x70238086
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 0x7023759e
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 0x702375b3
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x18], eax
jae 0x702375cf
mov eax, dword [ebp + 0x1c]
mov ebx, 0xfffffffd
mov dword [eax], 0
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
jmp 0x7023909b
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.0x70237625.4
jmp dword [eax*4 + str._vp]
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 0x70237698
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 0x702377f8
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 0x702376e7
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 0x70237725
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 0x702376fc
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0xc4]
jb 0x70237730
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 0x70238ea8
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 0x70237775
and esi, 0x20
jne 0x70237775
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 0x702377ae
shr ecx, 4
mov eax, 1
add ecx, 8
mov edx, 1
shl eax, cl
cmp eax, 0x8000
ja 0x702377a6
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 0x70237848
jmp 0x702377cf
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 0x70238ea5
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 0x70237823
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 0x70238ea8
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 0x702377f8
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 0x70237c2e
jmp 0x702378dd
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 0x702378b8
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 0x70238ea8
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 0x7023788d
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 0x702379c0
jmp 0x7023797f
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 0x7023795a
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 0x70238ea8
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 0x7023792f
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 0x70237a10
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 0x702379eb
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 0x70238ea8
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 0x7023790e
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 0x70237b43
jmp 0x70237a65
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 0x70238ea5
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 0x70237ab0
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 0x70238ea8
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 0x70237a85
movzx eax, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
mov dword [ebp - 0xc8], eax
jmp 0x70237b0d
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 0x70237b26
mov eax, dword [ebp + 8]
mov dword [eax], 0x34
jmp 0x70237b8b
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 0x70237c1c
cmp dword [ebp - 0xac], 0
jne 0x70237ad5
jmp 0x70237c1c
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 0x70237ba7
mov eax, dword [ebp + 8]
mov dword [eax], 9
mov ebx, 2
jmp 0x70238ea8
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 0x70237bd2
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 0x70238ea8
mov edx, dword [ebp - 0xd0]
mov eax, esi
sub edx, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xb0]
cmp eax, edx
jbe 0x70237bec
mov eax, edx
cmp eax, dword [ebp - 0xbc]
jbe 0x70237bfa
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 0x70237b74
jmp 0x70238c62
cmp eax, 3
jne 0x70237c55
jmp 0x70237c47
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 0x70238ea5
dec eax
jne 0x70237cc1
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 0x70237c7c
mov ebx, dword [ebp + 8]
mov byte [ebx + eax + 0x40], 9
inc eax
cmp eax, 0x100
jne 0x70237c8c
mov edi, dword [ebp + 8]
mov byte [edi + eax + 0x40], 7
inc eax
cmp eax, 0x118
jne 0x70237c9c
mov esi, dword [ebp + 8]
mov byte [esi + eax + 0x40], 8
inc eax
cmp eax, 0x120
jne 0x70237cac
jmp 0x70238205
mov dword [ebp - 0xbc], 0
jmp 0x70237d2f
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 0x70237d0a
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 0x70238ea8
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 + 0x702baefb]
cmp eax, dword [ebp - 0xac]
ja 0x70237cdf
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xbc]
inc dword [ebp - 0xbc]
mov esi, dword [ebp + 8]
movsx edx, byte [eax + 0x702baefb]
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 + 0x702d5d20]
shr dword [ebp - 0xb4], cl
mov dword [esi + edi*4 + 0x2c], eax
cmp dword [ebp - 0xbc], 2
jbe 0x70237d2f
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 0x70237e4f
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 0x70237ded
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 0x70238ea8
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 0x70237dc2
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
inc dword [ebp - 0xbc]
movzx eax, byte [eax + 0x702d6180]
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 0x70237e12
mov dword [eax + 0x34], 0x13
jmp 0x70238205
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 0x70238ea5
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 0x70237ec6
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 0x70238ea8
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 0x70237ff8
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [edi + eax*2 + 0x1ca0]
test eax, eax
js 0x70237f2a
sar eax, 9
je 0x70237e9b
cmp dword [ebp - 0xac], eax
jae 0x70237ff8
jmp 0x70237e9b
cmp dword [ebp - 0xac], 0xa
jbe 0x70237e9b
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 0x70237ff8
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x70237f3c
jmp 0x70237e9b
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 0x70237f77
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xc8], eax
cmp eax, 0xf
jg 0x70238029
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 0x702381bc
cmp dword [ebp - 0xac], 0xe
jbe 0x70238168
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 0x70237f72
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x70237f9b
cmp dword [ebp - 0xc8], 0x10
jne 0x70238071
cmp dword [ebp - 0xbc], 0
jne 0x70238071
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], 0x10
jmp 0x70238063
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 0x70238ea5
movsx eax, byte [eax + 0x702bad19]
cmp dword [ebp - 0xac], eax
mov dword [ebp - 0xc0], eax
jmp 0x702380f4
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 0x702380c3
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 0x70238ea8
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 0x70238098
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 + 0x702baeef]
shr dword [ebp - 0xb4], cl
add edx, eax
sub dword [ebp - 0xac], esi
xor eax, eax
cmp dword [ebp - 0xc8], 0x10
jne 0x70238147
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 0x70237fd3
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jle 0x70237efa
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 0x70237ff8
jne 0x702381d2
jmp 0x702381e0
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 0x70238ea5
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 0x70238444
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 0x702382a4
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 0x7023827c
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 0x702382bb
cmp eax, 0x10000
je 0x702382e2
cmp ecx, 1
ja 0x70237e7b
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 0x70238411
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd4]
movzx edx, byte [eax + esi + 0x40]
mov ecx, edx
test edx, edx
je 0x70238406
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 0x70238337
cmp edx, 0xa
ja 0x70238385
mov edx, ecx
mov esi, 1
shl edx, 9
shl esi, cl
or edx, dword [ebp - 0xd4]
mov ecx, esi
cmp eax, 0x3ff
ja 0x70238406
mov esi, dword [ebp - 0xe0]
mov word [esi + eax*2 + 0x160], dx
add eax, ecx
jmp 0x70238368
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 0x702383af
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 0x702383ec
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 0x702383e9
mov word [eax + 0x960], di
mov ecx, edi
sub edi, 2
dec edx
jmp 0x702383b4
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 0x702382fb
cmp dword [ebp - 0xec], 2
jne 0x702381ff
mov dword [ebp - 0xbc], 0
jmp 0x70237fd3
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 0x7023846d
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xb8]
dec eax
jg 0x7023864d
jmp 0x70238562
cmp dword [ebp - 0xac], 0xe
ja 0x702385a7
dec eax
jg 0x7023856b
mov eax, dword [ebp - 0xb4]
mov esi, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [esi + eax*2 + 0x160]
test eax, eax
js 0x702384ae
sar eax, 9
je 0x70238501
cmp dword [ebp - 0xac], eax
jae 0x702385a7
jmp 0x70238501
cmp dword [ebp - 0xac], 0xa
jbe 0x70238501
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 0x702385a7
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x702384bc
jmp 0x70238501
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 0x7023852c
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 0x70238ea8
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 0x70238481
jmp 0x702385a7
cmp dword [ebp - 0xac], 0xe
ja 0x702385a7
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 0x702385d1
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x702385fa
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 0x702385d6
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov dword [ebp - 0xbc], eax
cmp eax, 0xff
jg 0x7023879a
jmp 0x7023862d
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 0x7023842d
mov eax, dword [ebp + 8]
mov dword [eax], 0x18
jmp 0x70237b8b
cmp dword [ebp - 0xac], 0xe
ja 0x7023867b
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 0x7023869c
mov eax, edx
sar eax, 9
jmp 0x702386c5
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 0x702386a1
mov cl, al
sub dword [ebp - 0xac], eax
shr dword [ebp - 0xb4], cl
bt edx, 8
mov dword [ebp - 0xbc], edx
jb 0x7023879a
cmp dword [ebp - 0xac], 0xe
ja 0x70238711
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 0x70238732
mov ebx, eax
sar ebx, 9
jmp 0x7023875b
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 0x70238737
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 0x70238785
inc dword [ebp - 0xb8]
mov dword [ebp - 0xbc], eax
jmp 0x7023879a
mov edx, dword [ebp - 0xb8]
add dword [ebp - 0xb8], 2
mov byte [edx + 1], al
jmp 0x70238444
and dword [ebp - 0xbc], 0x1ff
cmp dword [ebp - 0xbc], 0x100
je 0x70238c62
mov eax, dword [ebp - 0xbc]
sub eax, 0x101
mov ebx, dword [eax*4 + 0x702d5ca0]
mov eax, dword [eax*4 + 0x702d5c20]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], eax
test ebx, ebx
je 0x70238885
cmp dword [ebp - 0xac], ebx
jmp 0x70238857
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 0x70238826
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 0x70238ea8
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 0x702387fb
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 0x702389c2
mov eax, dword [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
dec eax
jg 0x70238986
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 8]
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0xf00]
test eax, eax
js 0x702388d2
sar eax, 9
je 0x70238925
cmp dword [ebp - 0xac], eax
jae 0x702389c2
jmp 0x70238925
cmp dword [ebp - 0xac], 0xa
jbe 0x70238925
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 0x702389c2
add ecx, 2
cmp dword [ebp - 0xac], ecx
jae 0x702388e0
jmp 0x70238925
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 0x70238950
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 0x70238ea8
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 0x702388a5
jmp 0x702389c2
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 0x702389ec
sar eax, 9
mov edx, eax
mov eax, ecx
and eax, 0x1ff
jmp 0x70238a15
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 0x702389f1
mov cl, dl
sub dword [ebp - 0xac], edx
shr dword [ebp - 0xb4], cl
mov ecx, dword [eax*4 + 0x702d5b40]
mov eax, dword [eax*4 + 0x702d5ac0]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc8], eax
test ecx, ecx
je 0x70238ae9
cmp dword [ebp - 0xac], ecx
jmp 0x70238abb
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 0x70238a8a
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 0x70238ea8
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 0x70238a5f
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 0x70238b40
cmp dword [ebp - 0xe8], 0
je 0x70238b40
jmp 0x70238b32
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 0x70238ea5
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 0x70238b61
mov edx, eax
add edx, dword [ebp - 0xbc]
cmp dword [ebp - 0xd0], edx
jb 0x70238bd8
jmp 0x70238bf9
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 0x70238ba2
mov eax, dword [ebp + 8]
mov dword [eax], 0x35
jmp 0x70237b8b
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 0x70238444
dec eax
mov dword [ebp - 0xbc], eax
jmp 0x70238b86
cmp dword [ebp - 0xbc], 2
jbe 0x70238c2b
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 0x70238bf9
cmp dword [ebp - 0xbc], 0
je 0x70238444
mov ebx, dword [ebp - 0xb8]
mov dl, byte [eax]
cmp dword [ebp - 0xbc], 2
mov byte [ebx], dl
jne 0x70238c51
mov al, byte [eax + 1]
mov byte [ebx + 1], al
mov ecx, dword [ebp - 0xbc]
add dword [ebp - 0xb8], ecx
jmp 0x70238444
mov eax, dword [ebp + 8]
test byte [eax + 0x14], 1
je 0x70237848
jmp 0x70238cd3
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 0x70238cae
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 0x70238ea8
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 0x70238c83
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 0x70238d1f
cmp dword [ebp - 0xac], 7
jbe 0x70238d1f
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x70238cfc
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 0x70238d5d
mov dword [esp + 8], 0xaed
mov dword [esp + 4], 0x702bacd8
mov dword [esp], 0x702baef1
call sym.__assert
test byte [ebp + 0x20], 1
je 0x70238e86
mov dword [ebp - 0xbc], 0
jmp 0x70238e4c
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 0x70238db3
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 0x70238ea8
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 0x70238d88
movzx edx, byte [ebp - 0xb4]
sub dword [ebp - 0xac], 8
shr dword [ebp - 0xb4], 8
jmp 0x70238e1d
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xb0], eax
jmp 0x70238e4c
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 0x70238e86
cmp dword [ebp - 0xac], 0
jne 0x70238dd8
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0xb0], ecx
jb 0x70238e0c
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 0x70238ea8
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 0x70238ea8
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 0x70238ed5
cmp ebx, 0xfffffffc
je 0x70238ed5
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp + 0xc]
jbe 0x70238ed5
cmp dword [ebp - 0xac], 7
jbe 0x70238ed5
dec dword [ebp - 0xb0]
sub dword [ebp - 0xac], 8
jmp 0x70238eb2
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 0x7023909b
test ebx, ebx
js 0x7023909b
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 0x70239075
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 0x70238ff5
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 0x70238f9a
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 0x7023902d
movzx eax, byte [esi + edx]
add edi, eax
inc edx
add dword [ebp - 0xac], edi
jmp 0x7023901a
xor edx, edx
cmp ecx, dword [ebp - 0xb4]
jb 0x7023903f
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 0x70238f7d
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 0x7023909b
test byte [ebp + 0x20], 1
je 0x7023909b
cmp esi, dword [eax + 0x10]
je 0x7023909b
mov ebx, 0xfffffffe
add esp, 0xfc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret