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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov esi, dword [esp + 0x94]
cmp esi, 0xa
jb 0x6b6e5c93
mov eax, dword [esp + 0x90]
movzx edi, word [eax]
movzx ebx, word [eax + 2]
movzx ebp, word [eax + 4]
mov dword [esp + 0x54], ebx
lea eax, [edi + ebx + 6]
add eax, ebp
sub esi, eax
jae 0x6b6e5ca0
mov eax, 0xffffffec
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0xffffffb8
test di, di
je 0x6b6e5c98
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x98]
movzx ebp, word [esi + 2]
mov dword [esp + 0x38], ebp
cmp di, 4
mov dword [esp + 0x18], esi
jb 0x6b6e5d0a
mov esi, dword [esp + 0x90]
movzx esi, byte [esi + edi + 5]
test esi, esi
je 0x6b6e5f2c
mov dword [esp + 0x48], ecx
lea ebp, [edi + 2]
mov dword [esp + 0x2c], ebp
mov ebx, dword [esp + 0x90]
mov ebp, dword [ebx + ebp]
mov ebx, edx
mov dword [esp], ebp
bsr esi, esi
not esi
or esi, 0xffffffe0
add esi, 9
mov dword [esp + 0x24], esi
jmp 0x6b6e5d76
mov dword [esp + 0x48], ecx
mov ebp, dword [esp + 0x90]
mov ebx, ebp
movzx ebp, byte [ebp + 6]
mov dword [esp], ebp
cmp di, 2
je 0x6b6e5d38
cmp di, 3
jne 0x6b6e5d47
movzx esi, byte [ebx + 8]
shl esi, 0x10
mov ebp, dword [esp]
or ebp, esi
jmp 0x6b6e5d3b
mov ebp, dword [esp]
movzx esi, byte [ebx + 7]
shl esi, 8
add ebp, esi
mov dword [esp], ebp
movzx esi, byte [ebx + edi + 5]
test esi, esi
je 0x6b6e5c93
bsr ebp, esi
not ebp
or ebp, 0xffffffe0
lea esi, [edi*8]
sub ebp, esi
add ebp, 0x29
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], 6
mov ebx, edx
mov edx, dword [esp + 0x54]
test dx, dx
je 0x6b6e5c98
mov esi, dword [esp + 0x90]
lea ebp, [esi + edi + 6]
cmp dx, 4
mov dword [esp + 0x40], ebp
jb 0x6b6e5dc5
movzx ecx, byte [edx + ebp - 1]
test ecx, ecx
je 0x6b6e5f2c
lea esi, [edx - 4]
mov dword [esp + 0x44], esi
mov esi, dword [ebp + esi]
mov dword [esp + 0x14], esi
bsr ecx, ecx
not ecx
or ecx, 0xffffffe0
add ecx, 9
mov dword [esp + 8], ecx
jmp 0x6b6e5e26
movzx ecx, byte [ebp]
mov dword [esp + 0x14], ecx
cmp dx, 2
je 0x6b6e5de8
cmp dx, 3
jne 0x6b6e5df9
movzx ecx, byte [ebp + 2]
shl ecx, 0x10
mov esi, dword [esp + 0x14]
or esi, ecx
jmp 0x6b6e5dec
mov esi, dword [esp + 0x14]
movzx ecx, byte [ebp + 1]
shl ecx, 8
add esi, ecx
mov dword [esp + 0x14], esi
movzx ecx, byte [edx + ebp - 1]
test ecx, ecx
je 0x6b6e5c93
bsr esi, ecx
not esi
or esi, 0xffffffe0
lea ecx, [edx*8]
sub esi, ecx
add esi, 0x29
mov dword [esp + 8], esi
mov dword [esp + 0x44], 0
mov ebp, dword [esp + 0x1c]
test bp, bp
je 0x6b6e5c98
add edx, dword [esp + 0x40]
cmp bp, 4
jb 0x6b6e5e6d
movzx ecx, byte [ebp + edx - 1]
test ecx, ecx
je 0x6b6e5f2c
mov edi, edx
add ebp, 0xfffffffc
mov esi, edx
mov dword [esp + 0x10], ebp
mov edi, dword [edx + ebp]
mov dword [esp + 0x30], edi
bsr ecx, ecx
not ecx
or ecx, 0xffffffe0
add ecx, 9
mov dword [esp + 0xc], ecx
jmp 0x6b6e5ed3
movzx ecx, byte [edx]
mov dword [esp + 0x30], ecx
cmp bp, 2
je 0x6b6e5e8f
cmp bp, 3
jne 0x6b6e5ea0
movzx ecx, byte [edx + 2]
shl ecx, 0x10
mov ebp, dword [esp + 0x30]
or ebp, ecx
jmp 0x6b6e5e93
mov ebp, dword [esp + 0x30]
movzx ecx, byte [edx + 1]
shl ecx, 8
add ebp, ecx
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x1c]
movzx ecx, byte [ebp + edx - 1]
test ecx, ecx
je 0x6b6e5c93
mov esi, edx
bsr edi, ecx
not edi
or edi, 0xffffffe0
lea ecx, [ebp*8]
sub edi, ecx
add edi, 0x29
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x34]
test edi, edi
mov ebp, dword [esp + 0x2c]
je 0x6b6e5c98
mov eax, dword [esp + 0x1c]
add eax, esi
cmp edi, 4
mov dword [esp + 0x1c], eax
jb 0x6b6e5f36
movzx eax, byte [edi + eax - 1]
test eax, eax
mov ecx, ebx
mov ebx, dword [esp + 0x48]
je 0x6b6e5f2c
cmp edi, 0xffffff88
ja 0x6b6e630c
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + edi - 4]
mov dword [esp + 0x3c], edx
add edi, 0xfffffffc
mov dword [esp + 0x34], edi
bsr eax, eax
not eax
or eax, 0xffffffe0
add eax, 9
mov edx, ebp
jmp 0x6b6e5fa6
mov eax, 0xffffffff
jmp 0x6b6e5c98
movzx eax, byte [eax]
mov dword [esp + 0x3c], eax
cmp edi, 2
mov ecx, ebx
mov ebx, dword [esp + 0x48]
mov edx, ebp
je 0x6b6e5f62
cmp edi, 3
jne 0x6b6e5f79
mov ebp, dword [esp + 0x1c]
movzx eax, byte [ebp + 2]
shl eax, 0x10
mov edi, dword [esp + 0x3c]
or edi, eax
jmp 0x6b6e5f6a
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
movzx eax, byte [ebp + 1]
shl eax, 8
add edi, eax
mov dword [esp + 0x3c], edi
jmp 0x6b6e5f7d
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
movzx eax, byte [edi + ebp - 1]
test eax, eax
je 0x6b6e5c93
bsr eax, eax
not eax
or eax, 0xffffffe0
shl edi, 3
sub eax, edi
add eax, 0x29
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x54], esi
lea edx, [ebx + ecx - 3]
add dword [esp + 0x18], 4
mov dword [esp + 0x6c], ecx
lea edi, [ecx + 3]
shr edi, 2
lea ebp, [ebx + edi]
lea esi, [ebp + edi]
lea ecx, [esi + edi]
mov dword [esp + 0x70], edx
cmp ecx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], ebp
jae 0x6b6e6275
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], edi
lea eax, [edi + edi*2]
mov dword [esp + 4], eax
mov ecx, 1
mov esi, ebx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x10], edi
mov ebp, dword [esp]
mov ecx, eax
shl ebp, cl
mov ebx, dword [esp + 0x28]
mov ecx, ebx
shr ebp, cl
mov edi, dword [esp + 0x18]
movzx ecx, byte [edi + ebp*2 + 1]
add ecx, eax
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov ecx, edx
shl eax, cl
mov ecx, ebx
shr eax, cl
movzx ecx, byte [edi + ebp*2]
mov byte [esi], cl
mov ebp, esi
movzx ecx, byte [edi + eax*2 + 1]
add ecx, edx
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x30]
mov ecx, ebx
shl esi, cl
mov edx, dword [esp + 0x28]
mov ecx, edx
shr esi, cl
movzx eax, byte [edi + eax*2]
mov ecx, dword [esp + 0x4c]
mov byte [ebp + ecx], al
movzx eax, byte [edi + esi*2 + 1]
add eax, ebx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov ecx, ebx
shl eax, cl
mov ecx, edx
shr eax, cl
movzx ecx, byte [edi + esi*2]
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x4c]
mov byte [ebp + edx*2], cl
movzx ecx, byte [edi + eax*2 + 1]
add ecx, ebx
mov dword [esp + 0x50], ecx
mov esi, dword [esp]
mov ecx, dword [esp + 0x24]
shl esi, cl
mov ebx, dword [esp + 0x28]
mov ecx, ebx
shr esi, cl
movzx eax, byte [edi + eax*2]
mov ecx, dword [esp + 4]
mov byte [ebp + ecx], al
movzx edx, byte [edi + esi*2 + 1]
add edx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
shl ebx, cl
mov ecx, dword [esp + 0x28]
shr ebx, cl
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
shl ebp, cl
mov ecx, dword [esp + 0x28]
shr ebp, cl
movzx ecx, byte [edi + esi*2]
mov esi, dword [esp + 0x20]
mov byte [esi + 1], cl
movzx ecx, byte [edi + eax*2]
movzx eax, byte [edi + eax*2 + 1]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x4c]
mov byte [esi + eax + 1], cl
movzx ecx, byte [edi + ebx*2]
movzx ebx, byte [edi + ebx*2 + 1]
mov dword [esp + 0x78], ebx
mov byte [esi + eax*2 + 1], cl
movzx eax, byte [edi + ebp*2]
movzx ecx, byte [edi + ebp*2 + 1]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x2c]
mov ebp, esi
mov edi, dword [esp + 4]
mov byte [esi + edi + 1], al
xor ebx, ebx
cmp ecx, 0xa
jl 0x6b6e624f
mov eax, edx
shr eax, 3
sub ecx, eax
and edx, 7
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + ecx]
mov dword [esp], eax
mov ecx, 1
mov edi, dword [esp + 0x10]
and ecx, dword [esp + 0x5c]
mov eax, dword [esp + 8]
add eax, dword [esp + 0x74]
mov esi, dword [esp + 0x44]
cmp esi, 4
mov edx, ebp
jl 0x6b6e625e
mov ebx, eax
shr eax, 3
sub esi, eax
and ebx, 7
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], esi
mov eax, dword [eax + esi]
mov dword [esp + 0x14], eax
mov ebx, 1
and ecx, ebx
mov ebx, dword [esp + 0xc]
add ebx, dword [esp + 0x78]
xor esi, esi
cmp edi, 4
jl 0x6b6e6267
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edi]
mov dword [esp + 0x30], eax
mov ebx, 1
and ecx, ebx
mov eax, dword [esp + 4]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x68]
mov edx, dword [esp + 0x34]
cmp edx, 4
jl 0x6b6e626f
mov esi, eax
shr eax, 3
sub edx, eax
and esi, 7
mov dword [esp + 0x50], esi
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edx]
mov dword [esp + 0x3c], eax
mov esi, 1
and ecx, esi
add ebx, 2
xor eax, eax
cmp ebx, dword [esp + 0x70]
setb al
lea esi, [ebp + 2]
test ecx, eax
mov eax, dword [esp + 0x24]
jne 0x6b6e6012
jmp 0x6b6e628b
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
xor ecx, ecx
jmp 0x6b6e6180
mov dword [esp + 8], eax
jmp 0x6b6e61c1
mov dword [esp + 0xc], ebx
xor ebx, ebx
jmp 0x6b6e61f4
mov dword [esp + 0x50], eax
jmp 0x6b6e6230
mov edi, ebx
mov ebx, ecx
mov edx, esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
mov esi, ebp
jmp 0x6b6e62b4
add ebp, 2
mov ecx, dword [esp + 0x4c]
lea eax, [ebp + ecx]
mov dword [esp + 0x28], eax
lea edx, [ebp + ecx*2]
mov ebx, dword [esp + 4]
mov dword [esp + 0x20], ebp
add ebx, ebp
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x4c], edx
cmp edx, ecx
ja 0x6b6e5c93
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x58]
ja 0x6b6e5c93
mov dword [esp + 0x10], edi
mov dword [esp + 0x50], eax
cmp dword [esp + 0x20], esi
mov eax, 0xffffffec
ja 0x6b6e5c98
mov edx, dword [esp + 0x24]
cmp edx, 0x21
mov dword [esp + 4], ebx
jb 0x6b6e6313
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x2c]
jmp 0x6b6e64b8
mov eax, edi
jmp 0x6b6e5c98
lea eax, [esi - 3]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x2c]
cmp edi, 0xa
jge 0x6b6e6365
cmp edi, 6
je 0x6b6e63f9
mov ebx, edx
mov edx, edi
mov ebp, ebx
shr ebp, 3
mov esi, edi
sub esi, ebp
lea ecx, [edi - 6]
xor eax, eax
cmp esi, 6
setl al
cmovge ecx, ebp
mov edx, ebx
mov ebx, dword [esp + 4]
lea esi, [ecx*8]
sub edx, esi
jmp 0x6b6e636f
mov ecx, edx
shr ecx, 3
and edx, 7
xor eax, eax
sub edi, ecx
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + edi]
mov dword [esp], ecx
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x20], ecx
jae 0x6b6e63ef
test eax, eax
jne 0x6b6e63ef
mov ebx, edx
mov edx, dword [esp]
mov eax, edx
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x5c]
mov ebp, ecx
shr eax, cl
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, ebx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
mov byte [edi], cl
mov ecx, eax
shl edx, cl
mov ecx, ebp
shr edx, cl
movzx ecx, byte [esi + edx*2]
movzx edx, byte [esi + edx*2 + 1]
mov ebx, dword [esp + 4]
add edx, eax
mov byte [edi + 1], cl
add edi, 2
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x2c]
cmp edx, 0x20
mov eax, dword [esp + 8]
jbe 0x6b6e632b
jmp 0x6b6e64b8
cmp edx, 0x20
jbe 0x6b6e63fe
jmp 0x6b6e64b4
mov edi, 6
cmp edi, 0xa
jge 0x6b6e643e
cmp edi, 6
je 0x6b6e64af
mov eax, edi
mov esi, edx
shr esi, 3
mov edi, edx
mov edx, eax
mov ebp, eax
sub ebp, esi
lea ecx, [eax - 6]
xor eax, eax
cmp ebp, 6
mov ebx, dword [esp + 4]
setl al
cmovge ecx, esi
lea esi, [ecx*8]
sub edi, esi
mov dword [esp + 0x24], edi
mov edi, edx
jmp 0x6b6e644c
mov ecx, edx
shr ecx, 3
and edx, 7
xor eax, eax
mov dword [esp + 0x24], edx
sub edi, ecx
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + edi]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x60]
jae 0x6b6e64a3
test eax, eax
jne 0x6b6e64a3
mov eax, dword [esp]
mov ebp, edi
mov edi, ecx
mov edx, dword [esp + 0x24]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x5c]
shr eax, cl
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, edx
mov edx, eax
mov byte [edi], cl
inc edi
mov dword [esp + 0x20], edi
mov edi, ebp
cmp eax, 0x20
jbe 0x6b6e63fe
jmp 0x6b6e64b4
cmp ecx, dword [esp + 0x60]
mov eax, dword [esp + 8]
jb 0x6b6e64c6
jmp 0x6b6e650c
mov edi, 6
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x60]
mov dword [esp + 0x24], edx
jae 0x6b6e650c
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
mov eax, ecx
mov edx, dword [esp]
shl edx, cl
mov ecx, ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 1]
add ecx, eax
movzx eax, byte [esi + edx*2]
mov byte [ebp], al
inc ebp
cmp edi, ebp
jne 0x6b6e64de
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x2c]
cmp eax, 0x21
mov dword [esp + 0x2c], edi
jb 0x6b6e6523
mov edx, dword [esp + 0x38]
neg edx
and edx, 0x1f
jmp 0x6b6e65f8
mov ecx, dword [esp + 0x58]
lea edx, [ecx - 3]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x38]
neg edx
and edx, 0x1f
mov dword [esp], edx
mov edx, dword [esp + 0x44]
cmp edx, 4
jge 0x6b6e6570
test edx, edx
je 0x6b6e662b
mov edi, dword [esp + 0x40]
lea esi, [edi + edx]
mov ebx, eax
shr eax, 3
sub esi, eax
xor ecx, ecx
cmp esi, edi
setb cl
cmovb eax, edx
lea esi, [eax*8]
sub ebx, esi
mov esi, ebx
jmp 0x6b6e657e
mov esi, eax
shr eax, 3
and esi, 7
xor ecx, ecx
mov edi, dword [esp + 0x40]
sub edx, eax
mov dword [esp + 0x44], edx
mov ebp, dword [edi + edx]
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 8]
mov dword [esp + 0x14], ebp
jae 0x6b6e660d
test ecx, ecx
jne 0x6b6e660d
mov eax, ebp
mov edx, esi
mov ecx, edx
shl eax, cl
mov ebx, dword [esp]
mov ecx, ebx
shr eax, cl
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, edx
mov byte [edi], cl
mov esi, ebp
mov ecx, eax
shl esi, cl
mov ecx, ebx
shr esi, cl
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + esi*2]
mov ebp, edi
mov edi, dword [esp + 0x18]
movzx edx, byte [edi + esi*2 + 1]
add edx, eax
mov eax, edx
mov byte [ebp + 1], cl
add ebp, 2
mov dword [esp + 0x28], ebp
cmp edx, 0x21
jb 0x6b6e653a
mov dword [esp + 8], eax
mov ebx, dword [esp + 4]
mov edx, dword [esp]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
jmp 0x6b6e66e2
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, esi
cmp esi, 0x20
jbe 0x6b6e663b
mov ebx, dword [esp + 4]
jmp 0x6b6e66df
mov dword [esp + 0x44], 0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x44]
cmp ecx, 4
jge 0x6b6e667b
test ecx, ecx
je 0x6b6e66df
mov edi, dword [esp + 0x40]
lea edx, [edi + ecx]
mov esi, eax
shr eax, 3
sub edx, eax
xor ebx, ebx
cmp edx, edi
setb bl
mov ebp, ebx
cmovb eax, ecx
lea edx, [eax*8]
sub esi, edx
mov ebx, dword [esp + 4]
mov edx, esi
jmp 0x6b6e6689
mov edx, eax
shr eax, 3
and edx, 7
xor ebp, ebp
mov edi, dword [esp + 0x40]
sub ecx, eax
lea eax, [edi + ecx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ecx
mov eax, dword [edi + ecx]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x58]
jae 0x6b6e6bb1
test ebp, ebp
jne 0x6b6e6bb1
mov eax, dword [esp + 0x14]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp]
shr eax, cl
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, edx
mov byte [edi], cl
inc edi
mov dword [esp + 0x28], edi
cmp eax, 0x20
jbe 0x6b6e663f
mov edx, dword [esp]
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x28], ecx
jae 0x6b6e671f
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x58]
mov ebx, edx
mov edx, dword [esp + 0x14]
mov ecx, eax
shl edx, cl
mov ecx, ebx
shr edx, cl
movzx ecx, byte [ebp + edx*2 + 1]
add ecx, eax
movzx eax, byte [ebp + edx*2]
mov byte [esi], al
mov eax, ecx
inc esi
cmp edi, esi
jne 0x6b6e66fa
mov ebx, dword [esp + 4]
cmp dword [esp + 0xc], 0x21
mov dword [esp + 0x28], eax
jb 0x6b6e673c
mov edx, dword [esp + 0x38]
neg edx
and edx, 0x1f
mov ecx, dword [esp + 0x54]
jmp 0x6b6e6843
mov eax, dword [esp + 0x64]
add eax, 0xfffffffd
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x10], 4
jge 0x6b6e679d
cmp dword [esp + 0x10], 0
mov ebp, dword [esp + 0x4c]
je 0x6b6e6874
mov edi, dword [esp + 0x10]
lea esi, [ebx + edi]
mov edx, dword [esp + 0xc]
mov eax, edx
shr eax, 3
sub esi, eax
xor ecx, ecx
cmp esi, ebx
setb cl
cmovb eax, edi
lea esi, [eax*8]
sub edx, esi
mov dword [esp + 0xc], edx
jmp 0x6b6e67b3
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 3
and ecx, 7
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
sub edx, eax
mov dword [esp + 0x10], edx
mov esi, dword [ebx + edx]
cmp ebp, dword [esp + 0x14]
jae 0x6b6e6856
test ecx, ecx
jne 0x6b6e6856
mov eax, esi
mov edx, dword [esp + 0xc]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 8]
mov edi, ecx
shr eax, cl
mov ecx, dword [esp + 0x18]
movzx ebx, byte [ecx + eax*2]
mov byte [esp], bl
movzx eax, byte [ecx + eax*2 + 1]
add eax, edx
movzx ecx, byte [esp]
mov byte [ebp], cl
mov edx, esi
mov ecx, eax
shl esi, cl
mov ecx, edi
mov ebx, dword [esp + 0x54]
shr esi, cl
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + esi*2]
mov edi, dword [esp + 0x18]
movzx edi, byte [edi + esi*2 + 1]
add edi, eax
mov byte [ebp + 1], cl
add ebp, 2
mov dword [esp + 0x4c], ebp
mov dword [esp + 0xc], edi
cmp edi, 0x21
jb 0x6b6e675c
mov dword [esp + 0x30], edx
mov ecx, ebx
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x4c]
jmp 0x6b6e693c
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x10]
add eax, ebx
mov dword [esp + 0x14], eax
cmp dword [esp + 0xc], 0x20
jbe 0x6b6e6884
mov ebx, dword [esp + 4]
jmp 0x6b6e6938
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ebx
mov edx, ebx
mov ebx, dword [esp + 4]
cmp dword [esp + 0x10], 4
jge 0x6b6e68c6
cmp dword [esp + 0x10], 0
je 0x6b6e6938
mov esi, dword [esp + 0x10]
mov edi, edx
add edx, esi
mov ebx, dword [esp + 0xc]
mov eax, ebx
shr eax, 3
sub edx, eax
xor ecx, ecx
cmp edx, edi
setb cl
cmovb eax, esi
lea edx, [eax*8]
sub ebx, edx
mov edx, edi
jmp 0x6b6e68d4
mov ebx, dword [esp + 0xc]
mov eax, ebx
shr eax, 3
and ebx, 7
xor ecx, ecx
mov dword [esp], ebx
mov ebx, dword [esp + 0x10]
sub ebx, eax
lea eax, [edx + ebx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov eax, dword [edx + ebx]
mov edx, dword [esp + 0x64]
cmp ebp, edx
mov dword [esp + 0x30], eax
jae 0x6b6e6bc5
test ecx, ecx
jne 0x6b6e6bc5
mov edx, dword [esp]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 8]
shr eax, cl
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, edx
mov byte [ebp], cl
inc ebp
mov dword [esp + 0xc], eax
cmp eax, 0x20
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 4]
jbe 0x6b6e688a
mov edx, dword [esp + 8]
cmp ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0xc]
jae 0x6b6e6973
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x64]
mov ebx, edx
mov eax, ecx
mov edx, dword [esp + 0x30]
shl edx, cl
mov ecx, ebx
shr edx, cl
movzx ecx, byte [esi + edx*2 + 1]
add ecx, eax
movzx eax, byte [esi + edx*2]
mov byte [ebp], al
inc ebp
cmp edi, ebp
jne 0x6b6e6950
mov ebx, dword [esp + 4]
mov dword [esp], ecx
mov eax, dword [esp + 0x6c]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
neg eax
and eax, 0x1f
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
cmp eax, 0x20
ja 0x6b6e6a4c
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
cmp edi, 4
jge 0x6b6e69db
test edi, edi
je 0x6b6e6b03
mov ebp, dword [esp + 0x1c]
mov dword [esp + 4], ebx
lea edx, [ebp + edi]
mov ebx, eax
shr eax, 3
sub edx, eax
xor ecx, ecx
cmp edx, ebp
setb cl
cmovb eax, edi
lea edx, [eax*8]
sub ebx, edx
mov edx, ebx
mov ebx, dword [esp + 4]
jmp 0x6b6e69e9
mov edx, eax
shr eax, 3
and edx, 7
xor ecx, ecx
mov ebp, dword [esp + 0x1c]
sub edi, eax
mov dword [esp + 0x34], edi
mov ebp, dword [ebp + edi]
cmp ebx, dword [esp + 0x70]
jae 0x6b6e6aeb
test ecx, ecx
jne 0x6b6e6aeb
mov eax, ebp
mov ecx, edx
shl eax, cl
mov edi, ebx
mov ebx, dword [esp + 0x38]
mov ecx, ebx
shr eax, cl
movzx ecx, byte [esi + eax*2]
movzx eax, byte [esi + eax*2 + 1]
add eax, edx
mov byte [edi], cl
mov dword [esp + 0x3c], ebp
mov ecx, eax
shl ebp, cl
mov ecx, ebx
shr ebp, cl
movzx ecx, byte [esi + ebp*2]
movzx edx, byte [esi + ebp*2 + 1]
mov ebx, edi
add edx, eax
mov eax, edx
mov byte [edi + 1], cl
add ebx, 2
cmp edx, 0x21
jb 0x6b6e699c
mov ecx, eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x1c]
mov edi, eax
mov eax, ecx
mov ebp, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x48]
jae 0x6b6e6a9a
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov edx, eax
mov ebp, dword [esp + 0x3c]
mov ecx, edx
shl ebp, cl
mov ecx, edi
shr ebp, cl
movzx eax, byte [esi + ebp*2 + 1]
add eax, edx
movzx ecx, byte [esi + ebp*2]
mov byte [ebx], cl
inc ebx
cmp dword [esp + 0x48], ebx
jne 0x6b6e6a74
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
xor ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
xor edx, 6
mov esi, dword [esp + 0x28]
xor esi, 0x20
or esi, edx
or esi, ecx
mov ecx, dword [esp + 0x54]
xor ecx, dword [esp + 0x14]
mov edx, dword [esp]
xor edx, 0x20
or edx, esi
or edx, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, edi
xor eax, 0x20
or eax, edx
mov edx, dword [esp + 0x24]
xor edx, 0x20
or eax, edx
or eax, ecx
mov eax, 0xffffffec
cmove eax, dword [esp + 0x6c]
jmp 0x6b6e5c98
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
lea edi, [ecx + eax]
mov eax, edx
cmp edx, 0x20
ja 0x6b6e6a5e
jmp 0x6b6e6b13
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
cmp edi, 4
mov dword [esp + 4], ebx
jge 0x6b6e6b53
test edi, edi
je 0x6b6e6ba8
mov ebx, dword [esp + 0x1c]
mov ebp, eax
lea eax, [ebx + edi]
mov ecx, ebp
shr ecx, 3
sub eax, ecx
xor edx, edx
cmp eax, ebx
setb dl
cmovb ecx, edi
lea eax, [ecx*8]
sub ebp, eax
mov eax, ebp
jmp 0x6b6e6b61
mov ecx, eax
shr ecx, 3
and eax, 7
xor edx, edx
mov ebx, dword [esp + 0x1c]
sub edi, ecx
lea ecx, [ebx + edi]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x34], edi
mov ebp, dword [ebx + edi]
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x48]
jae 0x6b6e6bdd
test edx, edx
jne 0x6b6e6bdd
mov edx, ebp
mov ecx, eax
shl edx, cl
mov ecx, dword [esp + 0x38]
shr edx, cl
movzx ecx, byte [esi + edx*2]
movzx edx, byte [esi + edx*2 + 1]
add edx, eax
mov eax, edx
mov ebx, dword [esp + 4]
mov byte [ebx], cl
inc ebx
cmp edx, 0x20
jbe 0x6b6e6b1b
mov edi, dword [esp + 0xc]
jmp 0x6b6e6a5e
cmp edi, dword [esp + 0x58]
mov eax, edx
mov edx, dword [esp]
jb 0x6b6e66ec
jmp 0x6b6e671f
cmp ebp, edx
mov ebx, dword [esp + 4]
mov ecx, dword [esp]
mov edx, dword [esp + 8]
jb 0x6b6e6946
jmp 0x6b6e6973
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 0x48]
mov edi, dword [esp + 0xc]
jb 0x6b6e6a64
jmp 0x6b6e6a9a