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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov esi, dword [esp + 0xa4]
cmp esi, 0xa
jb 0x6b6e757e
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0xa0]
movzx ebx, word [eax]
movzx ebp, word [eax + 2]
movzx edi, word [eax + 4]
mov edx, ebp
lea eax, [ebx + ebp + 6]
mov ebp, edi
mov dword [esp + 0x10], edi
add eax, edi
sub esi, eax
jae 0x6b6e758e
mov eax, 0xffffffec
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0xffffffb8
test bx, bx
je 0x6b6e7583
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xa8]
movzx ecx, word [ecx + 2]
mov dword [esp + 0x30], ecx
cmp bx, 4
mov dword [esp + 0x2c], esi
mov ebp, dword [esp + 0xa0]
jb 0x6b6e75e5
movzx esi, byte [ebp + ebx + 5]
test esi, esi
je 0x6b6e77f6
lea ecx, [ebx + 2]
mov dword [esp + 0x48], ecx
mov edi, dword [ebp + ecx]
bsr ecx, esi
not ecx
or ecx, 0xffffffe0
add ecx, 9
mov dword [esp + 0xc], ecx
jmp 0x6b6e7634
movzx edi, byte [ebp + 6]
cmp bx, 2
je 0x6b6e75fe
cmp bx, 3
jne 0x6b6e7607
movzx esi, byte [ebp + 8]
shl esi, 0x10
or edi, esi
movzx esi, byte [ebp + 7]
shl esi, 8
add edi, esi
movzx esi, byte [ebp + ebx + 5]
test esi, esi
je 0x6b6e757e
bsr ecx, esi
not ecx
or ecx, 0xffffffe0
lea esi, [ebx*8]
sub ecx, esi
add ecx, 0x29
mov dword [esp + 0xc], ecx
mov dword [esp + 0x48], 6
test dx, dx
je 0x6b6e7583
lea esi, [ebp + ebx + 6]
cmp dx, 4
mov ebp, edx
jb 0x6b6e7675
movzx ecx, byte [ebp + esi - 1]
test ecx, ecx
je 0x6b6e77f6
lea ebx, [ebp - 4]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esi + ebx]
mov dword [esp + 0x14], ebx
bsr ecx, ecx
not ecx
or ecx, 0xffffffe0
add ecx, 9
mov dword [esp + 0x38], ecx
jmp 0x6b6e76d5
movzx ecx, byte [esi]
mov dword [esp + 0x14], ecx
cmp bp, 2
je 0x6b6e7697
cmp bp, 3
jne 0x6b6e76a8
movzx ecx, byte [esi + 2]
shl ecx, 0x10
mov ebx, dword [esp + 0x14]
or ebx, ecx
jmp 0x6b6e769b
mov ebx, dword [esp + 0x14]
movzx ecx, byte [esi + 1]
shl ecx, 8
add ebx, ecx
mov dword [esp + 0x14], ebx
movzx ecx, byte [ebp + esi - 1]
test ecx, ecx
je 0x6b6e757e
bsr ebx, ecx
not ebx
or ebx, 0xffffffe0
lea ecx, [ebp*8]
sub ebx, ecx
add ebx, 0x29
mov dword [esp + 0x38], ebx
mov dword [esp + 0x5c], 0
cmp word [esp + 0x10], 0
je 0x6b6e7583
add ebp, esi
cmp word [esp + 0x10], 4
mov dword [esp + 0x40], esi
jb 0x6b6e7728
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + ebp - 1]
test ecx, ecx
je 0x6b6e77f6
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
add esi, 0xfffffffc
mov dword [esp + 0x3c], esi
mov esi, dword [ebp + esi]
mov dword [esp + 0x44], esi
bsr ecx, ecx
not ecx
or ecx, 0xffffffe0
add ecx, 9
mov dword [esp + 4], ecx
jmp 0x6b6e7799
movzx ecx, byte [ebp]
mov dword [esp + 0x44], ecx
cmp word [esp + 0x10], 2
je 0x6b6e774f
cmp word [esp + 0x10], 3
jne 0x6b6e7760
movzx ecx, byte [ebp + 2]
shl ecx, 0x10
mov ebx, dword [esp + 0x44]
or ebx, ecx
jmp 0x6b6e7753
mov ebx, dword [esp + 0x44]
movzx ecx, byte [ebp + 1]
shl ecx, 8
add ebx, ecx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + ebp - 1]
test ecx, ecx
je 0x6b6e757e
mov edx, dword [esp + 0x6c]
bsr esi, ecx
not esi
or esi, 0xffffffe0
mov ecx, dword [esp + 0x10]
lea ecx, [ecx*8]
sub esi, ecx
add esi, 0x29
mov dword [esp + 4], esi
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x6b6e7583
add dword [esp + 0x10], ebp
cmp esi, 4
jb 0x6b6e7800
mov eax, dword [esp + 0x10]
movzx eax, byte [esi + eax - 1]
test eax, eax
mov ecx, edx
mov edx, esi
mov esi, dword [esp + 0x58]
je 0x6b6e77f6
cmp edx, 0xffffff88
ja 0x6b6e7bf2
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + edx - 4]
mov dword [esp + 0x20], ebx
add edx, 0xfffffffc
mov dword [esp + 0x2c], edx
bsr edx, eax
not edx
or edx, 0xffffffe0
add edx, 9
mov ebx, dword [esp + 0xa8]
jmp 0x6b6e7882
mov eax, 0xffffffff
jmp 0x6b6e7583
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov dword [esp + 0x20], eax
cmp esi, 2
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x58]
je 0x6b6e7837
cmp eax, 3
mov ebx, dword [esp + 0xa8]
jne 0x6b6e7853
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 2]
shl eax, 0x10
mov edx, dword [esp + 0x20]
or edx, eax
jmp 0x6b6e7842
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 1]
shl eax, 8
add edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
movzx eax, byte [edx + eax - 1]
test eax, eax
je 0x6b6e757e
bsr eax, eax
not eax
or eax, 0xffffffe0
shl edx, 3
sub eax, edx
mov edx, eax
add edx, 0x29
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x54], ebp
lea eax, [esi + ecx - 3]
add ebx, 4
mov dword [esp + 0x18], ebx
lea edi, [ecx + 3]
shr edi, 2
lea ebp, [esi + edi]
lea ecx, [ebp + edi]
add edi, ecx
mov dword [esp + 0x70], eax
cmp edi, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], ebp
jae 0x6b6e7b8c
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x30]
neg edx
and edx, 0x1f
mov dword [esp], edx
mov edx, 1
mov dword [esp + 0x34], ecx
mov ecx, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp]
shr edx, cl
mov edi, dword [esp + 0x18]
movzx eax, word [edi + edx*4]
mov word [esi], ax
movzx eax, byte [edi + edx*4 + 2]
add eax, ebx
movzx ebx, byte [edi + edx*4 + 3]
mov edx, dword [esp + 0x1c]
mov ecx, eax
shl edx, cl
mov ecx, dword [esp]
shr edx, cl
movzx ecx, word [edi + edx*4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x84], ebx
mov word [esi + ebx], cx
movzx ebx, byte [edi + edx*4 + 2]
add ebx, eax
movzx eax, byte [edi + edx*4 + 3]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp]
shr eax, cl
movzx ecx, word [edi + eax*4]
mov word [ebp], cx
movzx ecx, byte [edi + eax*4 + 2]
add ecx, edx
movzx esi, byte [edi + eax*4 + 3]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
shl eax, cl
mov ecx, dword [esp]
shr eax, cl
movzx ecx, word [edi + eax*4]
mov dword [esp + 8], ebp
mov dword [esp + 0x7c], esi
mov word [ebp + esi], cx
movzx ecx, byte [edi + eax*4 + 2]
movzx eax, byte [edi + eax*4 + 3]
mov dword [esp + 0x80], eax
xor eax, eax
mov edi, dword [esp + 0x48]
cmp edi, 0xa
jl 0x6b6e7b6d
mov edx, ebx
shr edx, 3
sub edi, edx
and ebx, 7
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + edi]
mov dword [esp + 0x1c], edx
mov edx, 1
and edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x38]
add ebp, ecx
mov ecx, dword [esp + 0x5c]
cmp ecx, 4
mov dword [esp + 0x48], edi
jl 0x6b6e7b78
mov eax, ebp
shr eax, 3
sub ecx, eax
and ebp, 7
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + ecx]
mov dword [esp + 0x14], eax
mov eax, 1
and edx, eax
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x44]
mov edx, ebp
mov ebx, dword [esp + 4]
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp]
shr edx, cl
mov edi, dword [esp + 0x18]
movzx eax, word [edi + edx*4]
mov esi, dword [esp + 0x34]
mov word [esi], ax
movzx eax, byte [edi + edx*4 + 2]
add eax, ebx
movzx ebx, byte [edi + edx*4 + 3]
mov ecx, eax
shl ebp, cl
mov edx, dword [esp]
mov ecx, edx
shr ebp, cl
movzx ecx, word [edi + ebp*4]
mov dword [esp + 0x74], ebx
mov word [esi + ebx], cx
movzx ebx, byte [edi + ebp*4 + 2]
add ebx, eax
movzx eax, byte [edi + ebp*4 + 3]
mov dword [esp + 0x78], eax
mov ebp, dword [esp + 0x20]
mov eax, ebp
mov ecx, dword [esp + 0x60]
shl eax, cl
mov ecx, edx
shr eax, cl
movzx ecx, word [edi + eax*4]
mov esi, dword [esp + 0x68]
mov word [esi], cx
movzx ecx, byte [edi + eax*4 + 2]
add ecx, dword [esp + 0x60]
movzx eax, byte [edi + eax*4 + 3]
mov dword [esp + 0x60], ecx
shl ebp, cl
mov ecx, edx
shr ebp, cl
movzx ecx, word [edi + ebp*4]
mov word [esi + eax], cx
lea edx, [esi + eax]
movzx eax, byte [edi + ebp*4 + 2]
movzx ecx, byte [edi + ebp*4 + 3]
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov edi, dword [esp + 0x3c]
cmp edi, 4
jl 0x6b6e7b81
mov ebp, ebx
shr ebp, 3
sub edi, ebp
and ebx, 7
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x3c], edi
mov ebx, dword [ebp + edi]
mov dword [esp + 0x44], ebx
mov ebp, 1
mov esi, dword [esp + 0x24]
and dword [esp + 0x28], ebp
add esi, dword [esp + 0x84]
mov edi, dword [esp + 0x7c]
add dword [esp + 8], edi
mov edi, dword [esp + 0x74]
add dword [esp + 0x34], edi
mov ebx, dword [esp + 0x60]
add ebx, eax
add edx, dword [esp + 0x68]
mov edi, edx
mov edx, dword [esp + 0x2c]
cmp edx, 4
jl 0x6b6e7b30
mov eax, ebx
shr eax, 3
sub edx, eax
and ebx, 7
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx]
mov dword [esp + 0x20], eax
mov ecx, 1
mov edx, dword [esp + 0x28]
and edx, ecx
add esi, dword [esp + 0x88]
mov ebp, dword [esp + 8]
add ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
add dword [esp + 0x34], eax
xor eax, eax
cmp edi, dword [esp + 0x70]
setb al
test edx, eax
mov ecx, edi
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x38]
jne 0x6b6e78db
jmp 0x6b6e7b92
mov dword [esp + 0xc], ebx
xor edx, edx
jmp 0x6b6e79c8
mov dword [esp + 0x38], ebp
jmp 0x6b6e7a05
mov dword [esp + 4], ebx
xor ebp, ebp
jmp 0x6b6e7ade
mov ebx, edx
mov dword [esp + 0x34], ecx
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x50]
ja 0x6b6e757e
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x4c]
ja 0x6b6e757e
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], esi
cmp esi, dword [esp + 0x64]
mov eax, 0xffffffec
mov ebp, dword [esp + 0x1c]
ja 0x6b6e7583
mov dword [esp + 0x28], edi
cmp dword [esp + 0xc], 0x21
mov dword [esp + 0x60], ebx
jb 0x6b6e7bf9
mov ecx, dword [esp + 0x30]
neg ecx
and ecx, 0x1f
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 8]
jmp 0x6b6e7d02
mov eax, edx
jmp 0x6b6e7583
mov eax, dword [esp + 0x64]
add eax, 0xfffffffd
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
neg eax
and eax, 0x1f
mov dword [esp], eax
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 8]
cmp edi, 0xa
jge 0x6b6e7c58
cmp edi, 6
je 0x6b6e7d21
mov edx, edi
mov ebp, dword [esp + 0xc]
mov edi, ebp
shr edi, 3
mov ebx, edx
sub ebx, edi
lea ecx, [edx - 6]
xor eax, eax
cmp ebx, 6
mov ebx, dword [esp + 8]
setl al
cmovge ecx, edi
lea edi, [ecx*8]
sub ebp, edi
mov dword [esp + 0xc], ebp
mov edi, edx
jmp 0x6b6e7c6a
mov eax, dword [esp + 0xc]
mov ecx, eax
shr ecx, 3
and eax, 7
mov dword [esp + 0xc], eax
xor eax, eax
sub edi, ecx
mov ecx, dword [esp + 0xa0]
mov ebp, dword [ecx + edi]
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x24], ecx
jae 0x6b6e7d0e
test eax, eax
jne 0x6b6e7d0e
mov dword [esp + 0x48], edi
mov edi, ebp
mov ebx, dword [esp + 0xc]
mov ecx, ebx
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov edx, dword [esp + 0x18]
movzx eax, word [edx + edi*4]
mov esi, dword [esp + 0x24]
mov word [esi], ax
movzx eax, byte [edx + edi*4 + 2]
add eax, ebx
movzx edi, byte [edx + edi*4 + 3]
mov dword [esp + 0x1c], ebp
mov ebx, ebp
mov ecx, eax
shl ebx, cl
mov ecx, dword [esp]
shr ebx, cl
movzx ecx, word [edx + ebx*4]
mov word [esi + edi], cx
lea ecx, [esi + edi]
mov edi, dword [esp + 0x48]
movzx ebp, byte [edx + ebx*4 + 2]
add ebp, eax
movzx eax, byte [edx + ebx*4 + 3]
mov ebx, dword [esp + 8]
add eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], ebp
cmp ebp, 0x21
jb 0x6b6e7c18
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp]
mov eax, dword [esp + 0x64]
lea esi, [eax - 2]
jmp 0x6b6e7df8
mov eax, dword [esp + 0x64]
lea esi, [eax - 2]
cmp dword [esp + 0xc], 0x20
jbe 0x6b6e7d31
jmp 0x6b6e7de7
mov eax, dword [esp + 0x64]
lea esi, [eax - 2]
mov edi, 6
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], ebp
cmp edi, 0xa
jge 0x6b6e7d74
cmp edi, 6
je 0x6b6e7dec
mov ebx, dword [esp + 0xc]
mov eax, ebx
shr eax, 3
mov edx, edi
sub edi, eax
lea ecx, [edx - 6]
cmp edi, 6
mov edi, edx
mov edx, 0
setl dl
cmovge ecx, eax
lea eax, [ecx*8]
sub ebx, eax
mov eax, ebx
mov ebx, dword [esp + 8]
jmp 0x6b6e7d82
mov eax, dword [esp + 0xc]
mov ecx, eax
shr ecx, 3
and eax, 7
xor edx, edx
sub edi, ecx
mov ecx, dword [esp + 0xa0]
mov ebp, dword [ecx + edi]
cmp dword [esp + 0x24], esi
ja 0x6b6e7de3
test edx, edx
jne 0x6b6e7de3
mov edx, edi
mov dword [esp + 0x1c], ebp
mov edi, ebp
mov ecx, eax
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov ebx, dword [esp + 0x18]
movzx ecx, word [ebx + edi*4]
mov ebp, esi
mov esi, dword [esp + 0x24]
mov word [esi], cx
movzx ecx, byte [ebx + edi*4 + 2]
add ecx, eax
movzx eax, byte [ebx + edi*4 + 3]
mov ebx, dword [esp + 8]
mov edi, edx
add esi, eax
mov dword [esp + 0x24], esi
mov esi, ebp
mov dword [esp + 0xc], ecx
cmp ecx, 0x20
jbe 0x6b6e7d35
jmp 0x6b6e7df1
mov dword [esp + 0xc], eax
mov ecx, dword [esp]
jmp 0x6b6e7df8
mov edi, 6
mov ecx, dword [esp]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov dword [esp], ecx
mov dword [esp + 0x48], edi
cmp dword [esp + 0x24], esi
jbe 0x6b6e7e13
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
jmp 0x6b6e7e47
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov ebp, esi
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp]
shr eax, cl
movzx ecx, word [edi + eax*4]
mov word [esi], cx
movzx ecx, byte [edi + eax*4 + 2]
add edx, ecx
movzx eax, byte [edi + eax*4 + 3]
add esi, eax
cmp esi, ebp
jbe 0x6b6e7e21
mov dword [esp + 0xc], edx
cmp esi, dword [esp + 0x64]
jae 0x6b6e7e7c
mov edx, dword [esp + 0xc]
mov ecx, edx
mov edi, dword [esp + 0x1c]
shl edi, cl
mov ecx, dword [esp]
shr edi, cl
mov ebp, dword [esp + 0x18]
mov al, byte [ebp + edi*4]
mov byte [esi], al
cmp byte [ebp + edi*4 + 3], 1
jne 0x6b6e7e82
movzx eax, byte [ebp + edi*4 + 2]
add edx, eax
jmp 0x6b6e7e99
mov ebp, dword [esp + 0x18]
jmp 0x6b6e7e9d
cmp edx, 0x1f
ja 0x6b6e7e9d
movzx eax, byte [ebp + edi*4 + 2]
add edx, eax
cmp edx, 0x20
mov eax, 0x20
cmovae edx, eax
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
cmp edx, 0x21
jb 0x6b6e7ebc
mov eax, dword [esp + 0x30]
neg eax
and eax, 0x1f
mov dword [esp + 0x1c], eax
jmp 0x6b6e7fa4
lea eax, [ecx - 3]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
neg eax
and eax, 0x1f
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x5c]
cmp esi, 4
mov dword [esp + 8], ebx
jge 0x6b6e7f0e
test esi, esi
je 0x6b6e7fe3
mov edi, edx
mov edx, dword [esp + 0x40]
mov ebx, esi
add esi, edx
mov eax, edi
shr eax, 3
sub esi, eax
xor ecx, ecx
cmp esi, edx
setb cl
cmovb eax, ebx
lea esi, [eax*8]
sub edi, esi
mov esi, ebx
mov ebx, edi
jmp 0x6b6e7f1e
mov eax, edx
shr eax, 3
and edx, 7
mov ebx, edx
xor ecx, ecx
mov edx, dword [esp + 0x40]
sub esi, eax
mov edi, dword [edx + esi]
mov eax, dword [esp]
cmp dword [esp + 8], eax
jae 0x6b6e7fbe
test ecx, ecx
jne 0x6b6e7fbe
mov dword [esp + 0x5c], esi
mov esi, edi
mov ecx, ebx
shl esi, cl
mov ecx, dword [esp + 0x1c]
shr esi, cl
mov edx, dword [esp + 0x18]
movzx eax, word [edx + esi*4]
mov ebp, dword [esp + 8]
mov word [ebp], ax
movzx eax, byte [edx + esi*4 + 2]
add eax, ebx
movzx esi, byte [edx + esi*4 + 3]
mov dword [esp + 0x14], edi
mov ecx, eax
shl edi, cl
mov ecx, dword [esp + 0x1c]
shr edi, cl
movzx ecx, word [edx + edi*4]
mov word [ebp + esi], cx
lea ecx, [ebp + esi]
movzx esi, byte [edx + edi*4 + 2]
add esi, eax
movzx ebx, byte [edx + edi*4 + 3]
mov edx, esi
mov esi, dword [esp + 0x5c]
add ebx, ecx
cmp edx, 0x21
mov ecx, dword [esp + 0x4c]
jb 0x6b6e7ed3
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
lea esi, [ecx - 2]
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, esi
jmp 0x6b6e80a9
mov eax, dword [esp + 0x40]
add eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffffe
mov edx, ebx
cmp ebx, 0x20
jbe 0x6b6e7ff4
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 8]
jmp 0x6b6e80a9
lea eax, [ecx - 2]
xor esi, esi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x14]
mov dword [esp], eax
mov ecx, edx
cmp esi, 4
jge 0x6b6e802c
test esi, esi
je 0x6b6e8090
mov edi, dword [esp + 0x40]
mov eax, esi
add esi, edi
mov edx, ecx
shr edx, 3
sub esi, edx
xor ebx, ebx
cmp esi, edi
setb bl
cmovb edx, eax
lea esi, [edx*8]
sub ecx, esi
mov esi, eax
jmp 0x6b6e803a
mov edx, ecx
shr edx, 3
and ecx, 7
xor ebx, ebx
mov edi, dword [esp + 0x40]
sub esi, edx
lea edx, [edi + esi]
mov dword [esp + 0x24], edx
mov edi, dword [edi + esi]
mov eax, dword [esp]
cmp dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
ja 0x6b6e809c
test ebx, ebx
jne 0x6b6e809c
mov ebx, esi
mov esi, edi
mov edx, ecx
shl esi, cl
mov ecx, eax
shr esi, cl
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + esi*4]
mov ebp, dword [esp + 8]
mov word [ebp], cx
movzx ecx, byte [eax + esi*4 + 2]
add ecx, edx
movzx esi, byte [eax + esi*4 + 3]
add ebp, esi
mov dword [esp + 8], ebp
mov esi, ebx
cmp ecx, 0x20
jbe 0x6b6e7ff9
mov edx, ecx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x18]
jmp 0x6b6e80a6
mov ebp, dword [esp + 0x18]
mov edx, ecx
mov ebx, dword [esp + 8]
mov eax, dword [esp]
mov dword [esp + 0x14], edi
cmp ebx, eax
jbe 0x6b6e80b7
mov eax, dword [esp + 0x1c]
jmp 0x6b6e80e7
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov esi, edi
mov ecx, edx
shl esi, cl
mov ecx, eax
shr esi, cl
movzx ecx, word [ebp + esi*4]
mov word [ebx], cx
movzx ecx, byte [ebp + esi*4 + 2]
add edx, ecx
movzx ecx, byte [ebp + esi*4 + 3]
add ebx, ecx
cmp ebx, dword [esp]
jbe 0x6b6e80c2
cmp ebx, dword [esp + 0x4c]
jae 0x6b6e8111
mov ecx, edx
mov esi, dword [esp + 0x14]
shl esi, cl
mov ecx, eax
shr esi, cl
mov al, byte [ebp + esi*4]
mov byte [ebx], al
cmp byte [ebp + esi*4 + 3], 1
jne 0x6b6e82be
movzx eax, byte [ebp + esi*4 + 2]
add edx, eax
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
cmp dword [esp + 4], 0x21
mov dword [esp + 0x38], edx
jb 0x6b6e8132
mov ecx, dword [esp + 0x30]
neg ecx
and ecx, 0x1f
jmp 0x6b6e8229
lea eax, [edi - 3]
mov dword [esp], eax
mov ecx, dword [esp + 0x30]
neg ecx
and ecx, 0x1f
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
cmp ebx, 4
jge 0x6b6e8184
test ebx, ebx
mov ebp, dword [esp + 0x54]
je 0x6b6e8454
lea edi, [ebp + ebx]
mov esi, dword [esp + 4]
mov eax, esi
shr eax, 3
sub edi, eax
mov ecx, ebx
xor ebx, ebx
cmp edi, ebp
setb bl
cmovb eax, ecx
lea edi, [eax*8]
sub esi, edi
mov dword [esp + 4], esi
jmp 0x6b6e819c
mov ecx, ebx
mov esi, dword [esp + 4]
mov eax, esi
shr eax, 3
and esi, 7
mov dword [esp + 4], esi
xor ebx, ebx
mov ebp, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x3c], ecx
mov esi, dword [ebp + ecx]
mov eax, dword [esp]
cmp dword [esp + 0x34], eax
mov dword [esp + 0x44], esi
jae 0x6b6e8408
test ebx, ebx
jne 0x6b6e8408
mov edi, esi
mov ebx, dword [esp + 4]
mov ecx, ebx
shl edi, cl
mov ecx, edx
shr edi, cl
mov ebp, dword [esp + 0x18]
movzx eax, word [ebp + edi*4]
mov ecx, esi
mov esi, dword [esp + 0x34]
mov word [esi], ax
movzx eax, byte [ebp + edi*4 + 2]
add eax, ebx
movzx edi, byte [ebp + edi*4 + 3]
mov ebx, ecx
mov ecx, eax
shl ebx, cl
mov ecx, edx
shr ebx, cl
movzx ecx, word [ebp + ebx*4]
mov word [esi + edi], cx
add edi, esi
movzx esi, byte [ebp + ebx*4 + 2]
add esi, eax
movzx eax, byte [ebp + ebx*4 + 3]
mov ecx, edx
add eax, edi
mov dword [esp + 0x34], eax
mov dword [esp + 4], esi
cmp esi, 0x21
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
jb 0x6b6e8149
mov edx, dword [esp + 0x54]
lea esi, [edi - 2]
add ebx, edx
mov dword [esp + 8], ebx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x34], esi
jbe 0x6b6e824a
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x34]
jmp 0x6b6e8282
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov esi, dword [esp + 0x44]
mov edi, esi
mov ecx, ebx
shl edi, cl
mov ecx, eax
shr edi, cl
movzx ecx, word [ebp + edi*4]
mov word [edx], cx
movzx ecx, byte [ebp + edi*4 + 2]
add ebx, ecx
movzx ecx, byte [ebp + edi*4 + 3]
add edx, ecx
cmp edx, dword [esp]
jbe 0x6b6e825d
mov dword [esp + 4], ebx
cmp edx, dword [esp + 0x50]
jae 0x6b6e82b8
mov ebx, dword [esp + 4]
mov ecx, ebx
mov esi, dword [esp + 0x44]
shl esi, cl
mov ecx, dword [esp + 0x14]
shr esi, cl
mov al, byte [ebp + esi*4]
mov byte [edx], al
cmp byte [ebp + esi*4 + 3], 1
mov edi, dword [esp + 0x28]
jne 0x6b6e82e2
movzx eax, byte [ebp + esi*4 + 2]
add ebx, eax
jmp 0x6b6e82f9
mov edi, dword [esp + 0x28]
jmp 0x6b6e82fd
cmp edx, 0x1f
mov ebx, dword [esp + 0x3c]
ja 0x6b6e8115
movzx eax, byte [ebp + esi*4 + 2]
add edx, eax
cmp edx, 0x20
mov eax, 0x20
cmovae edx, eax
jmp 0x6b6e8115
cmp ebx, 0x1f
ja 0x6b6e82fd
movzx eax, byte [ebp + esi*4 + 2]
add ebx, eax
cmp ebx, 0x20
mov eax, 0x20
cmovae ebx, eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
neg eax
and eax, 0x1f
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x60]
cmp esi, 0x20
ja 0x6b6e83ee
mov edx, dword [esp + 0x2c]
cmp edx, 4
mov dword [esp + 0x28], edi
jge 0x6b6e8368
test edx, edx
mov ebx, dword [esp + 0x30]
je 0x6b6e852e
mov ebp, dword [esp + 0x10]
lea edi, [ebp + edx]
mov eax, esi
shr eax, 3
sub edi, eax
xor ecx, ecx
cmp edi, ebp
mov ebp, dword [esp + 0x18]
setb cl
cmovb eax, edx
lea edi, [eax*8]
sub esi, edi
mov edi, dword [esp + 0x28]
jmp 0x6b6e8376
mov eax, esi
shr eax, 3
and esi, 7
xor ecx, ecx
mov ebx, dword [esp + 0x30]
sub edx, eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + edx]
cmp edi, dword [esp + 0x70]
mov dword [esp + 0x20], edx
jae 0x6b6e8431
test ecx, ecx
jne 0x6b6e8431
mov edi, edx
mov edx, esi
mov ecx, edx
shl edi, cl
mov ecx, ebx
shr edi, cl
movzx eax, word [ebp + edi*4]
mov esi, dword [esp + 0x28]
mov word [esi], ax
movzx eax, byte [ebp + edi*4 + 2]
add eax, edx
movzx edi, byte [ebp + edi*4 + 3]
mov edx, ebx
mov ebx, dword [esp + 0x20]
mov ecx, eax
shl ebx, cl
mov ecx, edx
shr ebx, cl
movzx ecx, word [ebp + ebx*4]
mov word [esi + edi], cx
lea ecx, [esi + edi]
movzx esi, byte [ebp + ebx*4 + 2]
add esi, eax
movzx edi, byte [ebp + ebx*4 + 3]
add edi, ecx
cmp esi, 0x21
jb 0x6b6e8323
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x58]
add eax, 0xfffffffe
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x10]
mov edi, edx
jmp 0x6b6e8606
mov eax, dword [esp + 0x3c]
mov ebx, ebp
add eax, ebp
mov dword [esp + 8], eax
mov edi, dword [esp + 0x50]
lea esi, [edi - 2]
mov eax, dword [esp + 4]
cmp eax, 0x20
mov ecx, dword [esp + 0x14]
jbe 0x6b6e8469
mov ebp, dword [esp + 0x18]
jmp 0x6b6e8236
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
lea edi, [ecx + eax]
mov ecx, dword [esp + 0x58]
lea eax, [ecx - 2]
mov dword [esp], eax
cmp esi, 0x20
jbe 0x6b6e8548
jmp 0x6b6e8603
lea esi, [edi - 2]
mov dword [esp + 0x3c], 0
mov ebx, ebp
mov dword [esp + 8], ebp
mov eax, dword [esp + 4]
mov dword [esp], esi
mov esi, eax
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
cmp eax, 4
jge 0x6b6e84a6
test eax, eax
je 0x6b6e851e
lea edi, [ebx + eax]
mov ecx, esi
shr ecx, 3
sub edi, ecx
xor edx, edx
cmp edi, ebx
setb dl
cmovb ecx, eax
lea edi, [ecx*8]
sub esi, edi
jmp 0x6b6e84b0
mov ecx, esi
shr ecx, 3
and esi, 7
xor edx, edx
mov dword [esp + 4], esi
sub eax, ecx
lea ecx, [ebx + eax]
mov dword [esp + 8], ecx
mov edi, dword [ebx + eax]
mov esi, dword [esp]
cmp dword [esp + 0x34], esi
mov dword [esp + 0x44], edi
ja 0x6b6e85ea
test edx, edx
jne 0x6b6e85ea
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 4]
mov ecx, edx
shl edi, cl
mov ecx, dword [esp + 0x14]
shr edi, cl
mov ebp, dword [esp + 0x18]
movzx esi, word [ebp + edi*4]
mov eax, dword [esp + 0x34]
mov word [eax], si
movzx esi, byte [ebp + edi*4 + 2]
add esi, edx
movzx edi, byte [ebp + edi*4 + 3]
add eax, edi
mov dword [esp + 0x34], eax
cmp esi, 0x20
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x20]
jbe 0x6b6e8476
mov dword [esp + 0x20], edx
mov dword [esp + 4], esi
mov esi, dword [esp]
jmp 0x6b6e8236
mov eax, dword [esp + 0x58]
add eax, 0xfffffffe
mov dword [esp], eax
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, esi
mov esi, dword [esp + 0x2c]
cmp esi, 4
jge 0x6b6e8584
test esi, esi
je 0x6b6e85fb
mov eax, dword [esp + 0x10]
lea ebp, [eax + esi]
mov eax, ecx
shr eax, 3
sub ebp, eax
xor ebx, ebx
cmp ebp, dword [esp + 0x10]
setb bl
cmovb eax, esi
lea ebp, [eax*8]
sub ecx, ebp
mov ebp, dword [esp + 0x18]
jmp 0x6b6e858e
mov eax, ecx
shr eax, 3
and ecx, 7
xor ebx, ebx
sub esi, eax
mov eax, dword [esp + 0x10]
lea edi, [eax + esi]
mov dword [esp + 0x2c], esi
mov edx, dword [eax + esi]
mov eax, dword [esp]
cmp dword [esp + 0x28], eax
mov dword [esp + 0x20], edx
ja 0x6b6e85f7
test ebx, ebx
jne 0x6b6e85f7
mov ebx, edx
mov eax, ecx
shl ebx, cl
mov ecx, dword [esp + 0x30]
shr ebx, cl
movzx ecx, word [ebp + ebx*4]
mov edx, dword [esp + 0x28]
mov word [edx], cx
movzx ecx, byte [ebp + ebx*4 + 2]
add ecx, eax
movzx ebx, byte [ebp + ebx*4 + 3]
add edx, ebx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
cmp ecx, 0x20
jbe 0x6b6e854a
mov esi, ecx
jmp 0x6b6e8603
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x6b6e8236
mov esi, ecx
jmp 0x6b6e8606
mov eax, edx
mov esi, ecx
mov dword [esp + 0x20], edx
mov eax, dword [esp]
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x28], eax
jbe 0x6b6e8618
mov edx, esi
mov esi, dword [esp + 0x28]
jmp 0x6b6e864e
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov edx, esi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov ebx, edi
mov ecx, edx
shl ebx, cl
mov ecx, eax
shr ebx, cl
movzx ecx, word [ebp + ebx*4]
mov word [esi], cx
movzx ecx, byte [ebp + ebx*4 + 2]
add edx, ecx
movzx ecx, byte [ebp + ebx*4 + 3]
add esi, ecx
cmp esi, dword [esp]
jbe 0x6b6e8629
cmp esi, dword [esp + 0x58]
jae 0x6b6e8688
mov ebx, edx
mov ecx, ebx
mov edx, dword [esp + 0x20]
shl edx, cl
mov ecx, dword [esp + 0x30]
shr edx, cl
mov cl, byte [ebp + edx*4]
mov byte [esi], cl
cmp byte [ebp + edx*4 + 3], 1
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
mov ecx, edx
mov esi, dword [esp + 0xc]
jne 0x6b6e86de
movzx ecx, byte [ebp + ecx*4 + 2]
add ebx, ecx
jmp 0x6b6e8696
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0xc]
mov ebx, edx
xor eax, dword [esp + 0x24]
xor esi, 0x20
or eax, esi
mov ecx, dword [esp + 0x38]
xor ecx, 0x20
or ecx, eax
xor edi, dword [esp + 8]
or edi, ecx
mov eax, dword [esp + 4]
xor eax, 0x20
or eax, edi
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x2c]
or ecx, eax
mov eax, dword [esp + 0x48]
xor eax, 6
or ecx, eax
xor ebx, 0x20
or ebx, ecx
mov eax, 0xffffffec
cmove eax, dword [esp + 0x6c]
jmp 0x6b6e7583
cmp ebx, 0x1f
ja 0x6b6e8696
movzx ecx, byte [ebp + ecx*4 + 2]
add ebx, ecx
cmp ebx, 0x20
mov ecx, 0x20
cmovae ebx, ecx
jmp 0x6b6e8696