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

Disassembly:
sub esp, 0x90
push ebx
mov ebx, dword [esp + 0xa4]
cmp ebx, 0xa
jae 0x6b5380
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
add eax, edx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa0]
push ebp
push esi
push edi
movzx ebp, word [eax]
lea edi, [ecx + 4]
movzx esi, word [eax + 4]
mov dword [esp + 0x28], ebp
movzx ebp, word [eax + 2]
mov dword [esp + 0x20], ebp
mov ebp, ebx
movzx ebx, word [eax]
sub ebp, esi
sub ebp, dword [esp + 0x20]
add eax, 6
mov dword [esp + 0x1c], eax
sub ebp, ebx
add eax, ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
sub ebp, 6
add eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa8]
add eax, 3
mov dword [esp + 0x14], edi
shr eax, 2
add edx, eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], edx
lea ebx, [edx + eax]
add eax, ebx
mov dword [esp + 0x18], ebx
mov esi, eax
mov dword [esp + 0x94], eax
mov eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x34], ebx
movzx ebx, al
mov dword [esp + 0x98], esi
mov dword [esp + 0x38], ebx
cmp ebp, dword [esp + 0xb0]
ja 0x6b57f5
push dword [esp + 0x28]
lea eax, [esp + 0x84]
push dword [esp + 0x20]
push eax
call fcn.006b3e80
add esp, 0xc
cmp eax, 0xffffff88
ja 0x6b6110
push dword [esp + 0x20]
lea eax, [esp + 0x48]
push dword [esp + 0x44]
push eax
call fcn.006b3e80
add esp, 0xc
cmp eax, 0xffffff88
ja 0x6b6110
push dword [esp + 0x30]
lea eax, [esp + 0x70]
push dword [esp + 0x14]
push eax
call fcn.006b3e80
add esp, 0xc
cmp eax, 0xffffff88
ja 0x6b6110
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x10]
push ebp
push eax
lea eax, [esp + 0x60]
push eax
call fcn.006b3e80
add esp, 0xc
cmp eax, 0xffffff88
ja 0x6b6110
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x84]
add eax, 0xfffffffd
mov dword [esp + 0x1c], edx
cmp esi, eax
jae 0x6b57b7
mov eax, dword [esp + 0x5c]
neg ebx
mov ebp, dword [esp + 0x70]
and ebx, 0x1f
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x28], eax
jmp 0x6b5508
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, edx
mov edx, dword [esp + 0x80]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0xa4]
movzx eax, byte [eax + edx*2]
movzx edi, byte [edi + edx*2 + 1]
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
add edi, dword [esp + 0x1c]
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x6c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebp, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [eax + edx*2 + 1]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov ecx, edi
and ecx, 0x1f
movzx eax, byte [eax + edx*2]
mov edx, dword [esp + 0x14]
mov byte [esi], al
mov eax, dword [esp + 0x80]
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
movzx ecx, byte [edx + eax*2 + 1]
movzx eax, byte [edx + eax*2]
add ecx, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xa4]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 0xa4], ecx
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
movzx edi, byte [edx + eax*2 + 1]
add edi, ebx
mov dword [esp + 0x20], edi
movzx eax, byte [edx + eax*2]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x48], edi
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, dword [esp + 0x34]
movzx ebx, byte [edx + eax*2 + 1]
movzx eax, byte [edx + eax*2]
add ebx, ebp
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
and ecx, 0x1f
mov dword [esp + 0x30], ebx
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
mov ecx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x70], ebx
movzx ebp, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x5c], ebp
cmp ecx, dword [esp + 0x90]
jae 0x6b56ac
mov ecx, 3
jmp 0x6b56d3
mov eax, edx
and edx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x80], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x4c]
cmove eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x54]
jae 0x6b56f1
mov ecx, 3
jmp 0x6b570f
mov eax, edi
and edi, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edi
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x44], eax
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x74]
sete al
and eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x7c]
jae 0x6b572f
mov ecx, 3
jmp 0x6b5751
mov eax, ebx
and ebx, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ebx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x40]
xor ebx, ebx
test ecx, ecx
mov ecx, dword [esp + 0x60]
cmove ebx, eax
cmp ecx, dword [esp + 0x68]
jae 0x6b5769
mov ecx, 3
jmp 0x6b5787
mov eax, ebp
and ebp, 7
shr eax, 3
sub ecx, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ebp
mov eax, dword [ecx]
xor ecx, ecx
mov dword [esp + 0x58], eax
xor eax, eax
test ecx, ecx
sete al
and ebx, eax
mov eax, dword [esp + 0x9c]
add eax, 0xfffffffd
mov dword [esp + 0x24], ebx
cmp esi, eax
sbb eax, eax
test ebx, eax
mov ebx, dword [esp + 0x20]
jne 0x6b5500
mov dword [esp + 0x98], esi
jmp 0x6b57cf
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x3c]
cmp ebx, eax
ja 0x6b57f5
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x2c], ecx
ja 0x6b57f5
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x34], ecx
jbe 0x6b5805
pop edi
pop esi
pop ebp
mov eax, 0xffffffec
pop ebx
add esp, 0x90
ret
mov ebp, dword [esp + 0x88]
lea ecx, [eax - 3]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x8c]
cmp edx, 0x20
jbe 0x6b5830
mov edi, dword [esp + 0x80]
mov dword [esp + 0x10], 3
jmp 0x6b58ae
cmp ebp, dword [esp + 0x90]
jb 0x6b584d
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub ebp, eax
and edx, 7
jmp 0x6b5892
cmp ebp, edi
jne 0x6b5866
mov edi, dword [esp + 0x80]
cmp edx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x6b58ae
mov ecx, edx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, edi
jae 0x6b5887
mov ecx, ebp
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x24]
add edx, eax
mov edi, dword [ebp]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], ebp
cmp ebx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x6b593f
mov ebx, dword [esp + 0x38]
mov ecx, edx
mov eax, dword [esp + 0x14]
and ecx, 0x1f
neg ebx
mov edx, edi
shl edx, cl
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0xa4]
movzx edi, byte [eax + edx*2 + 1]
movzx eax, byte [eax + edx*2]
add edi, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa4], ecx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0xa4]
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add edx, edi
mov ecx, dword [esp + 0x24]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0xa4], ebx
jmp 0x6b5813
mov esi, dword [esp + 0x88]
cmp edx, 0x20
jbe 0x6b5958
mov dword [esp + 0x10], 3
jmp 0x6b59e0
cmp esi, dword [esp + 0x90]
jb 0x6b5975
mov eax, edx
mov dword [esp + 0x10], 0
shr eax, 3
sub esi, eax
and edx, 7
jmp 0x6b59c5
mov edi, dword [esp + 0x8c]
cmp esi, edi
jne 0x6b599d
mov edi, dword [esp + 0x38]
cmp edx, 0x20
jae 0x6b5993
mov dword [esp + 0x10], 1
jmp 0x6b59e4
mov dword [esp + 0x10], 2
jmp 0x6b59e4
mov ecx, edx
mov dword [esp + 0x10], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, edi
jae 0x6b59be
mov ecx, esi
mov dword [esp + 0x10], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub esi, ecx
add edx, eax
mov eax, dword [esi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x88], esi
mov edi, dword [esp + 0x38]
neg edi
cmp ebx, dword [esp + 0x3c]
mov dword [esp + 0x40], edi
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x10], eax
sete al
test eax, ecx
je 0x6b5a3f
mov edi, dword [esp + 0x14]
mov ecx, edx
mov edx, dword [esp + 0x80]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x1c]
movzx eax, byte [edi + edx*2 + 1]
add ecx, eax
mov al, byte [edi + edx*2]
mov byte [ebx], al
mov edx, ecx
mov dword [esp + 0x1c], ecx
inc ebx
mov dword [esp + 0x84], ecx
jmp 0x6b5946
cmp ebx, dword [esp + 0x3c]
jae 0x6b5a84
mov ebp, dword [esp + 0x80]
and edi, 0x1f
mov esi, dword [esp + 0x14]
mov ecx, edx
mov edx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
mov ecx, dword [esp + 0x1c]
movzx eax, byte [esi + edx*2 + 1]
add ecx, eax
mov al, byte [esi + edx*2]
mov byte [ebx], al
mov edx, ecx
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], ecx
cmp ebx, dword [esp + 0x3c]
jb 0x6b5a53
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
add ecx, 0xfffffffd
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
nop dword [eax + eax]
cmp edi, 0x20
jbe 0x6b5aac
mov ebx, 3
jmp 0x6b5b0b
cmp esi, dword [esp + 0x54]
jb 0x6b5ac6
mov eax, edi
and edi, 7
shr eax, 3
sub esi, eax
mov ebx, dword [esi]
mov dword [esp + 0x44], ebx
xor ebx, ebx
jmp 0x6b5b03
cmp esi, dword [esp + 0x50]
jne 0x6b5ad6
cmp edi, 0x20
sbb ebx, ebx
add ebx, 2
jmp 0x6b5b0b
mov ecx, edi
mov eax, esi
shr ecx, 3
xor ebx, ebx
sub eax, ecx
cmp eax, dword [esp + 0x50]
jae 0x6b5af2
mov ecx, esi
mov ebx, 1
sub ecx, dword [esp + 0x50]
imul eax, ecx, 0xfffffff8
sub esi, ecx
mov ecx, dword [esp + 0x24]
add edi, eax
mov eax, dword [esi]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
cmp edx, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
test ebx, ebx
sete al
test eax, ecx
je 0x6b5b84
mov ebx, dword [esp + 0x38]
mov ecx, edi
mov edx, dword [esp + 0x44]
and ecx, 0x1f
shl edx, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
movzx eax, byte [ecx + edx*2]
mov edx, dword [esp + 0x2c]
mov ecx, edi
and ecx, 0x1f
mov byte [edx], al
mov eax, dword [esp + 0x44]
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx ebx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, edi
mov ecx, dword [esp + 0x24]
mov edi, ebx
mov byte [edx + 1], al
add edx, 2
mov dword [esp + 0x20], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], edx
jmp 0x6b5aa0
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
nop dword [eax]
cmp edi, 0x20
jbe 0x6b5b9f
mov dword [esp + 0x20], 3
jmp 0x6b5c1a
cmp ebp, dword [esp + 0x54]
jb 0x6b5bb9
mov eax, edi
mov dword [esp + 0x20], 0
shr eax, 3
sub ebp, eax
and edi, 7
jmp 0x6b5c0b
cmp ebp, dword [esp + 0x50]
jne 0x6b5bdf
mov ecx, ebx
mov eax, 0x1f
cmp edi, 0x20
jae 0x6b5bd5
mov dword [esp + 0x20], 1
jmp 0x6b5c21
mov dword [esp + 0x20], 2
jmp 0x6b5c21
mov ecx, edi
mov dword [esp + 0x20], 0
shr ecx, 3
mov eax, ebp
sub eax, ecx
cmp eax, dword [esp + 0x50]
jae 0x6b5c04
mov ecx, ebp
mov dword [esp + 0x20], 1
sub ecx, dword [esp + 0x50]
imul eax, ecx, 0xfffffff8
sub ebp, ecx
add edi, eax
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebp
mov ecx, ebx
mov eax, 0x1f
and eax, ecx
cmp edx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x20], eax
sete al
test eax, ecx
je 0x6b5c70
mov edx, dword [esp + 0x44]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
and ecx, 0x1f
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
mov al, byte [ecx + edx*2]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], edi
mov byte [edx], al
inc edx
mov dword [esp + 0x2c], edx
jmp 0x6b5b90
cmp edx, dword [esp + 0x18]
jae 0x6b5ca9
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
shr edx, cl
movzx eax, byte [ebp + edx*2 + 1]
add edi, eax
mov al, byte [ebp + edx*2]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x18]
jb 0x6b5c82
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x30]
add ecx, 0xfffffffd
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
cmp ebx, 0x20
jbe 0x6b5cd6
mov dword [esp + 0x18], 3
jmp 0x6b5d47
cmp ebp, dword [esp + 0x7c]
jb 0x6b5cf0
mov eax, ebx
mov dword [esp + 0x18], 0
shr eax, 3
sub ebp, eax
and ebx, 7
jmp 0x6b5d34
cmp ebp, dword [esp + 0x78]
jne 0x6b5d04
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x6b5d47
mov edx, dword [esp + 0x78]
mov ecx, ebx
shr ecx, 3
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x18], 0
cmp eax, edx
jae 0x6b5d29
mov ecx, ebp
mov dword [esp + 0x18], 1
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub ebp, ecx
mov ecx, dword [esp + 0x24]
add ebx, eax
mov edx, dword [ebp]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x74], ebp
cmp edi, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x6b5dc8
mov edi, dword [esp + 0x30]
mov ecx, edi
mov ebx, dword [esp + 0x38]
and ecx, 0x1f
shl edx, cl
neg ebx
and ebx, 0x1f
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add edi, eax
movzx eax, byte [ecx + edx*2]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x34], ecx
mov eax, edx
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
movzx ebx, byte [ecx + eax*2 + 1]
movzx eax, byte [ecx + eax*2]
add ebx, edi
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x70], ebx
mov byte [edi], al
inc edi
mov dword [esp + 0x34], edi
jmp 0x6b5cc7
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x74]
cmp ebx, 0x20
jbe 0x6b5de3
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x18], 3
jmp 0x6b5e4d
cmp esi, dword [esp + 0x7c]
jb 0x6b5dfd
mov eax, ebx
mov dword [esp + 0x18], 0
shr eax, 3
sub esi, eax
and ebx, 7
jmp 0x6b5e3f
mov edx, dword [esp + 0x78]
cmp esi, edx
jne 0x6b5e17
mov edx, dword [esp + 0x6c]
cmp ebx, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x6b5e4d
mov ecx, ebx
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, esi
sub eax, ecx
cmp eax, edx
jae 0x6b5e38
mov ecx, esi
mov dword [esp + 0x18], 1
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub esi, ecx
add ebx, eax
mov edx, dword [esi]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
cmp edi, dword [esp + 0x94]
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x6b5e8c
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + edx*2 + 1]
add ebx, eax
mov al, byte [ecx + edx*2]
mov byte [edi], al
inc edi
mov dword [esp + 0x70], ebx
jmp 0x6b5dd0
mov esi, dword [esp + 0x98]
cmp edi, dword [esp + 0x94]
jae 0x6b5ed9
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, ebx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
movzx eax, byte [ebp + edx*2 + 1]
add ebx, eax
mov al, byte [ebp + edx*2]
mov edx, dword [esp + 0x6c]
mov byte [edi], al
inc edi
cmp edi, dword [esp + 0x94]
jb 0x6b5ea4
mov esi, dword [esp + 0x98]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x14]
add ecx, 0xfffffffd
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
cmp ebp, 0x20
jbe 0x6b5f06
mov edi, dword [esp + 0x58]
mov dword [esp + 0x18], 3
jmp 0x6b5f70
cmp edx, dword [esp + 0x68]
jb 0x6b5f20
mov eax, ebp
mov dword [esp + 0x18], 0
shr eax, 3
sub edx, eax
and ebp, 7
jmp 0x6b5f62
cmp edx, edi
jne 0x6b5f36
mov edi, dword [esp + 0x58]
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x6b5f70
mov ecx, ebp
mov dword [esp + 0x18], 0
shr ecx, 3
mov eax, edx
sub eax, ecx
cmp eax, edi
jae 0x6b5f57
mov ecx, edx
mov dword [esp + 0x18], 1
sub ecx, edi
imul eax, ecx, 0xfffffff8
sub edx, ecx
mov ecx, dword [esp + 0x24]
add ebp, eax
mov edi, dword [edx]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], edx
cmp esi, ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [esp + 0x18], eax
sete al
test eax, ecx
je 0x6b5fe0
mov ebx, dword [esp + 0x38]
mov ecx, ebp
and ecx, 0x1f
neg ebx
and ebx, 0x1f
mov edx, edi
shl edx, cl
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx edi, byte [ecx + edx*2 + 1]
movzx eax, byte [ecx + edx*2]
add edi, ebp
mov byte [esi], al
mov ecx, edi
mov eax, dword [esp + 0x58]
and ecx, 0x1f
shl eax, cl
mov ecx, ebx
mov ebx, dword [esp + 0x14]
shr eax, cl
mov ecx, dword [esp + 0x24]
movzx ebp, byte [ebx + eax*2 + 1]
movzx eax, byte [ebx + eax*2]
add ebp, edi
mov byte [esi + 1], al
add esi, 2
mov dword [esp + 0x5c], ebp
jmp 0x6b5eeb
cmp ebp, 0x20
jbe 0x6b5fec
mov edx, 3
jmp 0x6b605a
cmp edx, dword [esp + 0x68]
jb 0x6b6006
mov eax, ebp
and ebp, 7
shr eax, 3
sub edx, eax
mov dword [esp + 0x60], edx
mov edi, dword [edx]
xor edx, edx
jmp 0x6b6052
cmp edx, dword [esp + 0x64]
jne 0x6b601c
cmp ebp, 0x20
sbb eax, eax
add eax, 2
mov dword [esp + 0x3c], eax
mov edx, eax
jmp 0x6b605a
mov edi, dword [esp + 0x64]
mov ecx, ebp
shr ecx, 3
mov eax, edx
sub eax, ecx
mov dword [esp + 0x3c], 0
cmp eax, edi
jae 0x6b6041
mov ecx, edx
mov dword [esp + 0x3c], 1
sub ecx, edi
sub edx, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x60], edx
mov edi, dword [edx]
mov edx, dword [esp + 0x3c]
add ebp, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebp
cmp esi, dword [esp + 0x9c]
sbb ecx, ecx
xor eax, eax
neg ecx
test edx, edx
sete al
test eax, ecx
je 0x6b6099
mov ecx, ebp
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
movzx eax, byte [ebx + edx*2 + 1]
add ebp, eax
mov al, byte [ebx + edx*2]
mov edx, dword [esp + 0x60]
mov byte [esi], al
inc esi
mov dword [esp + 0x5c], ebp
jmp 0x6b5fe0
cmp esi, dword [esp + 0x9c]
jae 0x6b60cb
mov ecx, ebp
mov edx, edi
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
movzx eax, byte [ebx + edx*2 + 1]
add ebp, eax
mov al, byte [ebx + edx*2]
mov byte [esi], al
inc esi
cmp esi, dword [esp + 0x9c]
jb 0x6b60a2
mov dword [esp + 0x5c], ebp
lea eax, [esp + 0x58]
push eax
call fcn.006b3e60
mov edx, eax
lea eax, [esp + 0x70]
push eax
call fcn.006b3e60
and edx, eax
lea eax, [esp + 0x4c]
push eax
call fcn.006b3e60
and edx, eax
lea eax, [esp + 0x8c]
push eax
call fcn.006b3e60
add esp, 0x10
mov ecx, 0xffffffec
test eax, edx
mov eax, dword [esp + 0xa8]
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret