Function at 0x6b6ec470
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov ebp, dword [ecx + 0x34]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x10], 2
mov dword [esp], ecx
cmp dword [ecx + 0x14], 0x1c
jb 0x6b6eca7b
mov esi, dword [esp]
lea eax, [esi + 8]
mov dword [esp + 0x20], eax
push eax
call fcn.6b6f0090
add esp, 4
mov eax, dword [esi]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x6b6ec4af
jmp dword [eax*4 + 0x6b7d767c]
mov eax, 0xffffffe1
jmp 0x6b6eca88
mov eax, dword [esp]
mov ecx, dword [eax + 0x14]
cmp ecx, 0x1c
jb 0x6b6ed007
mov eax, dword [esp]
mov eax, dword [eax + 0xc4]
test eax, eax
je 0x6b6ecfe2
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ebp
mov eax, dword [esp]
mov ebp, dword [eax + 0x68]
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp eax, 0x10
jb 0x6b6ec523
xor eax, 0x10
mov esi, dword [esp]
mov dword [esi + 0xc], eax
mov ebx, ecx
mov ecx, dword [esi + 0x10]
movzx edx, word [ecx]
shrd edi, edx, 0x10
mov dword [esi + 8], edi
add ebx, 0xfffffffe
mov dword [esp + 8], ebx
mov dword [esi + 0x14], ebx
add ecx, 2
mov dword [esi + 0x10], ecx
jmp 0x6b6ec527
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov edx, edi
mov ecx, eax
shr edx, cl
movzx edi, dl
lea ebx, [ebp + edi*4]
movzx ecx, byte [ebp + edi*4]
cmp ecx, 9
jb 0x6b6ec565
add eax, 8
mov esi, dword [esp]
mov dword [esi + 0xc], eax
movzx esi, word [ebp + edi*4 + 2]
shr edx, 8
mov edi, dword [0x6b83adb4]
and edx, dword [edi + ecx*4 - 0x20]
add edx, esi
mov cl, byte [ebx + edx*4]
lea ebx, [ebx + edx*4]
mov ebp, dword [esp + 0xc]
movzx ecx, cl
add ecx, eax
mov edi, dword [esp]
mov dword [edi + 0xc], ecx
movzx esi, word [ebx + 2]
movzx eax, byte [esi*8 + 0x6b7d7870]
movsx edx, byte [esi*8 + 0x6b7d7872]
movzx ebx, byte [esi*8 + 0x6b7d7873]
mov dword [edi + 0x10c], edx
mov dword [edi + 0xb4], ebx
mov edx, dword [edi + 0x74]
mov dl, byte [edx + ebx]
xor ebx, ebx
test eax, eax
mov byte [edi + 0x104], dl
mov dword [esp + 0xc], esi
movzx edx, byte [esi*8 + 0x6b7d7871]
jne 0x6b6ed015
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xc]
movzx esi, word [eax*8 + 0x6b7d7874]
movzx eax, word [eax*8 + 0x6b7d7876]
mov dword [esp + 4], eax
cmp dl, 0x10
ja 0x6b6ec631
cmp ecx, 0x10
jb 0x6b6ec61a
xor ecx, 0x10
mov dword [esp + 0x14], esi
mov esi, dword [esp]
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x18], edx
movzx edx, word [eax]
shrd edi, edx, 0x10
mov dword [esi + 8], edi
mov edx, dword [esp + 8]
add edx, 0xfffffffe
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x18]
add eax, 2
mov dword [esi + 0x10], eax
mov esi, dword [esp + 0x14]
mov eax, dword [0x6b83adb4]
shr edi, cl
and edi, dword [eax + edx*4]
add ecx, edx
mov eax, dword [esp]
mov dword [eax + 0xc], ecx
jmp 0x6b6ec6d7
cmp ecx, 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
jb 0x6b6ec668
xor ecx, 0x10
mov esi, dword [esp]
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0x10]
movzx edx, word [eax]
shrd edi, edx, 0x10
mov dword [esi + 8], edi
mov edx, dword [esp + 8]
add edx, 0xfffffffe
mov dword [esp + 8], edx
mov dword [esi + 0x14], edx
add eax, 2
mov dword [esi + 0x10], eax
mov eax, edi
shr eax, cl
movzx eax, ax
mov dword [esp + 0xc], eax
add ecx, 0x10
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
cmp ecx, 0x18
jb 0x6b6ec6b2
mov edx, edi
shr edx, 0x18
mov eax, edi
mov edi, dword [esp]
mov dword [edi + 8], edx
xor ecx, 0x18
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
mov esi, dword [edx]
shrd eax, esi, 0x18
mov dword [edi + 8], eax
mov esi, dword [esp + 8]
add esi, 0xfffffffd
mov dword [edi + 0x14], esi
add edx, 3
mov dword [edi + 0x10], edx
mov edi, eax
mov esi, dword [esp + 0x14]
mov edx, dword [0x6b83adb4]
shr edi, cl
mov eax, dword [esp + 0x18]
and edi, dword [edx + eax*4 - 0x40]
lea ecx, [ecx + eax - 0x10]
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
shl edi, 0x10
add edi, dword [esp + 0xc]
add edi, dword [esp + 4]
mov eax, dword [esp]
mov dword [eax + 0x108], edi
mov ecx, dword [esp + 0x1c]
dec ecx
mov dword [eax + 0xc4], ecx
add ebx, esi
je case.0x6b6ec4af.9
mov eax, dword [esp]
sub dword [eax + 0xb8], ebx
mov eax, dword [esp]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x6b6ec920
mov ecx, dword [esp]
mov eax, dword [ecx + 0x100]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
cmp ecx, 0x18
jb 0x6b6ec754
mov esi, edx
shr esi, 0x18
mov dword [esp + 4], ebx
mov ebx, dword [esp]
mov dword [ebx + 8], esi
xor ecx, 0x18
mov dword [ebx + 0xc], ecx
mov esi, dword [ebx + 0x10]
mov edi, dword [esi]
shrd edx, edi, 0x18
mov dword [ebx + 8], edx
add dword [ebx + 0x14], 0xfffffffd
add esi, 3
mov dword [ebx + 0x10], esi
mov ebx, dword [esp + 4]
shr edx, cl
movzx ecx, dl
mov dl, byte [eax + ecx*4]
movzx edi, word [eax + ecx*4 + 2]
neg ebx
mov dword [esp + 4], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
cmp dword [eax + 0x14], 0x1b
jbe 0x6b6eca6c
mov eax, dword [esp]
cmp dword [eax + 0xc0], 0
je 0x6b6ec825
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x100]
movzx eax, dl
cmp dl, 9
jae 0x6b6ec893
add ecx, eax
mov eax, dword [esp]
mov dword [eax + 0xc], ecx
mov edx, dword [eax + 8]
mov eax, edi
cmp ecx, 0x18
jb 0x6b6ec7e6
mov dword [esp + 8], esi
mov esi, edx
shr esi, 0x18
mov ebx, dword [esp]
mov dword [ebx + 8], esi
xor ecx, 0x18
mov dword [ebx + 0xc], ecx
mov esi, dword [ebx + 0x10]
mov edi, dword [esi]
shrd edx, edi, 0x18
mov dword [ebx + 8], edx
add dword [ebx + 0x14], 0xfffffffd
add esi, 3
mov dword [ebx + 0x10], esi
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
shr edx, cl
movzx ecx, dl
movzx edx, byte [esi + ecx*4]
movzx edi, word [esi + ecx*4 + 2]
mov esi, dword [esp]
mov ecx, dword [esi + 0x60]
mov byte [ecx + ebp], al
dec dword [esi + 0xc0]
lea eax, [ebp + 1]
cmp eax, dword [esi + 0x40]
je 0x6b6ecfba
inc ebx
mov dword [esp + 4], ebx
mov ebp, eax
jne 0x6b6ec770
jmp 0x6b6eca90
mov esi, dword [esp]
mov ecx, esi
call fcn.6b6ee980
mov ebx, dword [esi + 0x100]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x18
jb 0x6b6ec867
mov edx, eax
shr edx, 0x18
mov edi, dword [esp]
mov dword [edi + 8], edx
xor ecx, 0x18
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
mov esi, dword [edx]
shrd eax, esi, 0x18
mov dword [edi + 8], eax
add dword [edi + 0x14], 0xfffffffd
add edx, 3
mov dword [edi + 0x10], edx
shr eax, cl
mov edx, dword [esp]
cmp dword [edx + 0xb0], 0
je 0x6b6eca5f
mov esi, ebx
movzx eax, al
movzx edx, byte [ebx + eax*4]
movzx edi, word [ebx + eax*4 + 2]
movzx eax, dl
cmp dl, 9
jb 0x6b6ec7a5
mov dword [esp + 8], esi
movzx edx, di
mov dword [esp + 0x1c], edx
cmp ecx, 0x10
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
jb 0x6b6ec8d1
xor ecx, 0x10
mov dword [esp + 0xc], ebp
mov ebp, dword [esp]
mov dword [ebp + 0xc], ecx
mov esi, dword [ebp + 0x10]
movzx ebx, word [esi]
shrd edx, ebx, 0x10
mov dword [ebp + 8], edx
add dword [ebp + 0x14], 0xfffffffe
add esi, 2
mov dword [ebp + 0x10], esi
mov ebp, dword [esp + 0xc]
mov ebx, edx
shr ebx, cl
movzx esi, bl
mov edi, dword [esp + 8]
lea esi, [edi + esi*4]
mov edi, dword [esp + 0x1c]
lea esi, [esi + edi*4]
shr ebx, 8
mov edi, dword [0x6b83adb4]
and ebx, dword [edi + eax*4 - 0x20]
movzx eax, byte [esi + ebx*4]
lea ecx, [ecx + eax + 8]
mov eax, dword [esp]
mov dword [eax + 0xc], ecx
movzx eax, word [esi + ebx*4 + 2]
mov esi, dword [esp + 8]
cmp ecx, 0x18
jae 0x6b6ec7b7
jmp 0x6b6ec7e6
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov ecx, dword [ecx + 0x60]
lea edx, [ebp - 1]
and edx, eax
mov dl, byte [ecx + edx]
mov byte [esp + 8], dl
lea edx, [ebp - 2]
and edx, eax
mov eax, ebx
mov bh, byte [esp + 8]
mov bl, byte [ecx + edx]
neg eax
mov dword [esp + 4], eax
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
cmp dword [eax + 0x14], 0x1b
jbe 0x6b6eca6c
mov eax, dword [esp]
cmp dword [eax + 0xc0], 0
je 0x6b6eca3c
mov esi, dword [esp]
mov eax, dword [esi + 0x6c]
movzx ecx, bh
movzx edx, bl
movzx edx, byte [eax + edx + 0x100]
or dl, byte [eax + ecx]
movzx eax, dl
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x70]
movzx eax, byte [edx + eax]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x10
mov byte [esp + 8], bh
jb 0x6b6ec9c3
xor ecx, 0x10
mov ebx, dword [esp]
mov dword [ebx + 0xc], ecx
mov esi, dword [ebx + 0x10]
movzx edi, word [esi]
shrd eax, edi, 0x10
mov dword [ebx + 8], eax
add dword [ebx + 0x14], 0xfffffffe
add esi, 2
mov dword [ebx + 0x10], esi
shr eax, cl
movzx esi, al
lea edi, [edx + esi*4]
movzx ebx, byte [edx + esi*4]
cmp ebx, 9
jb 0x6b6eca00
add ecx, 8
mov dword [esp + 0xc], ebp
mov ebp, dword [esp]
mov dword [ebp + 0xc], ecx
mov ebp, dword [esp + 0xc]
movzx edx, word [edx + esi*4 + 2]
shr eax, 8
mov esi, dword [0x6b83adb4]
and eax, dword [esi + ebx*4 - 0x20]
add eax, edx
movzx ebx, byte [edi + eax*4]
lea edi, [edi + eax*4]
movzx eax, bl
add eax, ecx
mov edx, dword [esp]
mov dword [edx + 0xc], eax
movzx ecx, byte [edi + 2]
mov eax, dword [edx + 0x60]
mov byte [eax + ebp], cl
dec dword [edx + 0xc0]
lea eax, [ebp + 1]
cmp eax, dword [edx + 0x40]
je 0x6b6ecfc5
inc dword [esp + 4]
movzx ebx, byte [esp + 8]
mov bh, cl
mov ebp, eax
jne 0x6b6ec950
jmp 0x6b6eca90
mov esi, dword [esp]
mov ecx, esi
call fcn.6b6ee980
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x6b6ec96d
mov ebx, dword [esp + 4]
neg ebx
jmp 0x6b6ec709
mov ebx, dword [esp + 4]
neg ebx
xor eax, eax
jmp 0x6b6ec709
mov eax, dword [esp]
mov dword [eax], 8
mov ebx, dword [esp + 4]
neg ebx
mov eax, dword [esp]
mov dword [eax + 0x34], ebp
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x10]
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp]
cmp dword [ecx + 0xb8], 0
jle 0x6b6ed074
mov ebp, eax
mov eax, dword [esp]
cmp dword [eax + 0x10c], 0
js 0x6b6ecad6
sete al
movzx esi, al
mov ecx, dword [esp]
mov dword [ecx + 0xb4], esi
mov eax, dword [ecx + 0x48]
dec eax
mov dword [ecx + 0x48], eax
and eax, 3
mov ebx, dword [ecx + eax*4 + 0x4c]
mov dword [ecx + 0x10c], ebx
jmp 0x6b6ecd3d
mov eax, dword [esp]
cmp dword [eax + 0xc8], 0
je 0x6b6ed151
mov edx, dword [esp]
mov eax, dword [edx + 0x98]
movzx ecx, byte [edx + 0x104]
mov edi, dword [eax + ecx*4]
mov ebx, dword [edx + 8]
mov eax, dword [edx + 0xc]
cmp eax, 0x10
mov dword [esp + 0xc], ebp
jb 0x6b6ecb28
xor eax, 0x10
mov esi, dword [esp]
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x10]
movzx edx, word [ecx]
shrd ebx, edx, 0x10
mov dword [esi + 8], ebx
add dword [esi + 0x14], 0xfffffffe
add ecx, 2
mov dword [esi + 0x10], ecx
mov edx, ebx
mov ecx, eax
shr edx, cl
movzx esi, dl
lea ebp, [edi + esi*4]
movzx ecx, byte [edi + esi*4]
cmp ecx, 9
jb 0x6b6ecb6a
add eax, 8
mov dword [esp + 4], edi
mov edi, dword [esp]
mov dword [edi + 0xc], eax
mov edi, dword [esp + 4]
movzx esi, word [edi + esi*4 + 2]
shr edx, 8
mov edi, dword [0x6b83adb4]
and edx, dword [edi + ecx*4 - 0x20]
add edx, esi
mov cl, byte [ebp + edx*4]
lea ebp, [ebp + edx*4]
movzx ecx, cl
add ecx, eax
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
movzx eax, word [ebp + 2]
dec dword [edx + 0xc8]
cmp eax, 0xf
mov dword [edx + 0xb4], 0
ja 0x6b6ecbd7
mov ecx, dword [esp]
mov dword [ecx + 0x10c], eax
cmp ax, 3
mov ebp, dword [esp + 0xc]
ja 0x6b6ecc34
mov edx, eax
not edx
mov esi, 1
mov ecx, eax
shr esi, cl
mov ecx, dword [esp]
mov dword [ecx + 0xb4], esi
mov eax, dword [ecx + 0x48]
add edx, eax
and edx, 3
mov ebx, dword [ecx + edx*4 + 0x4c]
mov dword [ecx + 0x10c], ebx
sub eax, esi
mov dword [ecx + 0x48], eax
jmp 0x6b6ecd3d
mov edx, dword [esp]
movzx esi, byte [edx + eax + 0x270]
cmp esi, 0x10
ja 0x6b6ecc83
cmp ecx, 0x10
mov ebp, dword [esp + 0xc]
jb 0x6b6ecc1c
xor ecx, 0x10
mov edi, dword [esp]
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
mov dword [esp + 4], esi
movzx esi, word [edx]
shrd ebx, esi, 0x10
mov esi, dword [esp + 4]
mov dword [edi + 8], ebx
add dword [edi + 0x14], 0xfffffffe
add edx, 2
mov dword [edi + 0x10], edx
mov edx, dword [0x6b83adb4]
shr ebx, cl
and ebx, dword [edx + esi*4]
add ecx, esi
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
jmp 0x6b6ecd23
xor edx, edx
cmp ax, 0xa
setb dl
mov esi, 0xfffffffc
mov ecx, 0xfffffff6
cmovb ecx, esi
add ecx, eax
shl ecx, 2
mov eax, 0x605142
shr eax, cl
and eax, 0xf
mov esi, dword [esp]
mov ecx, dword [esi + 0x48]
lea ecx, [edx + ecx + 2]
and ecx, 3
mov ecx, dword [esi + ecx*4 + 0x4c]
lea eax, [eax + ecx - 3]
test eax, eax
mov ebx, 0x7fffffff
cmovg ebx, eax
mov dword [esi + 0x10c], ebx
jmp 0x6b6ecd3b
mov dword [esp + 4], esi
cmp ecx, 0xf
jbe 0x6b6eccc4
xor ecx, 0x10
mov esi, dword [esp]
mov ebp, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
movzx edx, word [ebp]
shrd ebx, edx, 0x10
mov dword [esi + 8], ebx
add edi, 0xfffffffe
mov dword [esi + 0x14], edi
add ebp, 2
mov dword [esi + 0x10], ebp
mov edx, ebx
shr edx, cl
movzx edx, dx
mov dword [esp + 8], edx
sub ecx, 0xfffffff0
mov dword [esi + 0xc], ecx
jb 0x6b6eccde
jmp 0x6b6eccfe
mov edx, ebx
shr edx, cl
movzx edx, dx
mov dword [esp + 8], edx
add ecx, 0x10
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
mov ebp, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
xor ecx, 0x10
mov esi, dword [esp]
mov dword [esi + 0xc], ecx
movzx edx, word [ebp]
shrd ebx, edx, 0x10
mov dword [esi + 8], ebx
add edi, 0xfffffffe
mov dword [esi + 0x14], edi
add ebp, 2
mov dword [esi + 0x10], ebp
mov edx, dword [0x6b83adb4]
shr ebx, cl
mov esi, dword [esp + 4]
and ebx, dword [edx + esi*4 - 0x40]
lea ecx, [ecx + esi - 0x10]
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
shl ebx, 0x10
add ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov edx, dword [esp]
mov cl, byte [edx + 0xf0]
shl ebx, cl
add ebx, dword [edx + eax*4 + 0x490]
mov dword [edx + 0x10c], ebx
xor esi, esi
mov eax, dword [esp]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
cmp eax, ecx
je 0x6b6ecd57
cmp ebp, ecx
cmovle ecx, ebp
mov eax, dword [esp]
mov dword [eax + 0x3c], ecx
mov eax, ecx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x108]
cmp ebx, eax
mov dword [esp + 4], ecx
jle 0x6b6ece09
cmp ebx, 0x7ffffffc
jg 0x6b6ecf91
mov edi, dword [esp + 4]
lea ecx, [edi - 4]
cmp ecx, 0x14
ja 0x6b6ecf9b
mov dword [esp + 0xc], ebp
not eax
add ebx, eax
mov ebp, dword [esp]
mov dword [esp + 8], esi
mov esi, dword [ebp + 0x248]
mov eax, dword [ebp + 0x24c]
movzx ecx, byte [esi + edi]
mov edx, dword [0x6b83adb4]
mov edx, dword [edx + ecx*4]
and edx, ebx
imul edx, edi
add edx, dword [esi + edi*4 + 0x20]
mov edi, dword [esp + 8]
add dword [ebp + 0x48], edi
sar ebx, cl
mov ecx, dword [esi + 0xa4]
test ecx, ecx
je 0x6b6ed147
cmp ebx, dword [eax + 0xc]
jge 0x6b6ecfa5
add ecx, edx
movsx edx, word [eax + 0x18]
mov esi, dword [esp]
mov edi, dword [esi + 0x60]
mov ebp, dword [esp + 0xc]
add edi, ebp
cmp ebx, edx
jne 0x6b6ecf20
mov ebx, dword [esp + 4]
push ebx
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, ebx
jmp 0x6b6ecf31
mov eax, ebp
sub eax, ebx
mov edi, dword [esp]
and eax, dword [edi + 0x44]
mov edx, dword [edi + 0x48]
mov ecx, dword [edi + 0x60]
mov esi, edx
and esi, 3
mov dword [edi + esi*4 + 0x4c], ebx
inc edx
mov dword [edi + 0x48], edx
mov edx, dword [esp + 4]
sub dword [edi + 0xb8], edx
mov esi, dword [ecx + eax]
mov dword [esp + 8], esi
mov esi, dword [ecx + eax + 4]
mov edi, dword [ecx + eax + 8]
mov ebx, dword [ecx + eax + 0xc]
mov dword [ecx + ebp + 0xc], ebx
mov dword [ecx + ebp + 8], edi
mov dword [ecx + ebp + 4], esi
mov ebx, edx
lea edi, [edx + ebp]
mov edx, dword [esp + 8]
mov dword [ecx + ebp], edx
lea edx, [eax + ebx]
cmp edi, eax
jle 0x6b6ece66
cmp edx, ebp
jg case.0x6b6ec4af.10
mov esi, dword [esp]
mov esi, dword [esi + 0x40]
cmp edi, esi
jge case.0x6b6ec4af.10
cmp edx, esi
jge case.0x6b6ec4af.10
cmp ebx, 0x11
jl 0x6b6ecf43
add ebp, ecx
add eax, ecx
add ebp, 0x10
add eax, 0x10
cmp ebx, 0x21
jl 0x6b6ecf56
lea ecx, [ebx - 0x10]
push ecx
push eax
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
cmp dword [eax + 0xb8], 0
jg 0x6b6ecf4f
jmp 0x6b6ecf79
mov eax, dword [esp]
mov eax, dword [eax + 0x40]
mov ecx, ebx
nop
nop
nop
nop
nop
mov ebx, ecx
test ecx, ecx
jle 0x6b6ecf01
lea ecx, [ebx - 1]
mov edi, dword [esp]
mov edx, dword [edi + 0x60]
mov esi, ebp
sub esi, dword [edi + 0x10c]
and esi, dword [edi + 0x44]
mov edi, ebx
movzx ebx, byte [edx + esi]
mov byte [edx + ebp], bl
inc ebp
cmp eax, ebp
jne 0x6b6ecec0
mov eax, dword [esp]
mov dword [eax], 0x10
dec edi
mov dword [esp + 0x10], 1
mov ebx, edi
jmp 0x6b6eca7b
dec ebx
mov eax, dword [esp]
cmp dword [eax + 0xb8], 0
jg case.0x6b6ec4af.7
mov eax, dword [esp]
mov dword [eax], 0xe
jmp 0x6b6ecfd5
push ebx
push eax
mov ebx, dword [esp + 0xc]
push ebx
push ecx
push edi
call fcn.6b6f02a0
add esp, 0x14
add ebp, eax
mov ecx, dword [esp]
sub dword [ecx + 0xb8], eax
cmp ebp, dword [ecx + 0x40]
jge 0x6b6ecfaf
mov edi, ebp
mov eax, dword [esp]
cmp dword [eax + 0xb8], 0
jle 0x6b6ecf79
mov ebp, edi
jmp case.0x6b6ec4af.7
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], esi
mov dword [ebp + 4], edx
mov dword [ebp], ecx
mov eax, dword [esp]
cmp dword [eax + 0xb8], 0
jg 0x6b6ecf4f
mov eax, dword [esp]
mov dword [eax], 0xe
mov dword [esp + 0x10], 1
mov ebp, edi
jmp 0x6b6eca7b
mov eax, 0xfffffff0
jmp 0x6b6eca88
mov eax, 0xfffffff4
jmp 0x6b6eca88
mov eax, 0xfffffff5
jmp 0x6b6eca88
mov eax, dword [esp]
mov dword [eax], 0xf
jmp 0x6b6ecfd5
mov eax, dword [esp]
mov dword [eax], 0xd
jmp 0x6b6ecfd2
mov eax, dword [esp]
mov dword [eax], 0xd
mov ebx, dword [esp + 4]
not ebx
inc ebp
mov dword [esp + 0x10], 1
jmp 0x6b6eca7b
mov esi, dword [esp]
mov ecx, esi
call fcn.6b6ee390
mov ecx, dword [esi + 0x14]
cmp ecx, 0x1b
jbe 0x6b6ed007
mov eax, dword [esp]
mov eax, dword [eax + 0xc4]
test eax, eax
jne 0x6b6ec4e0
jmp 0x6b6ecfe5
mov eax, dword [esp]
mov dword [eax], 7
jmp 0x6b6eca7b
cmp al, 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
ja 0x6b6ed08e
cmp ecx, 0x10
jb 0x6b6ed058
xor ecx, 0x10
mov edi, dword [esp]
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
movzx esi, word [edx]
mov ebx, dword [esp + 4]
shrd ebx, esi, 0x10
mov dword [esp + 4], ebx
mov dword [edi + 8], ebx
mov esi, dword [esp + 8]
add esi, 0xfffffffe
mov dword [esp + 8], esi
mov dword [edi + 0x14], esi
add edx, 2
mov dword [edi + 0x10], edx
mov edx, dword [0x6b83adb4]
mov edi, dword [esp + 4]
mov ebx, edi
shr ebx, cl
mov eax, dword [esp + 0x14]
and ebx, dword [edx + eax*4]
add ecx, eax
jmp 0x6b6ed138
mov ecx, dword [esp]
mov dword [ecx], 0xe
mov dword [esp + 0x10], 1
xor ebx, ebx
mov ebp, eax
jmp 0x6b6eca7b
cmp ecx, 0x10
jb 0x6b6ed0c5
xor ecx, 0x10
mov edi, dword [esp]
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
movzx esi, word [edx]
mov ebx, dword [esp + 4]
shrd ebx, esi, 0x10
mov dword [esp + 4], ebx
mov dword [edi + 8], ebx
mov esi, dword [esp + 8]
add esi, 0xfffffffe
mov dword [esp + 8], esi
mov dword [edi + 0x14], esi
add edx, 2
mov dword [edi + 0x10], edx
mov edi, dword [esp + 4]
mov edx, edi
shr edx, cl
movzx esi, dx
add ecx, 0x10
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
cmp ecx, 0x18
jb 0x6b6ed11d
mov edx, edi
shr edx, 0x18
mov edi, dword [esp]
mov dword [edi + 8], edx
xor ecx, 0x18
mov dword [edi + 0xc], ecx
mov edx, dword [edi + 0x10]
mov eax, esi
mov esi, dword [edx]
shrd dword [esp + 4], esi, 0x18
mov esi, dword [esp + 4]
mov dword [edi + 8], esi
mov esi, dword [esp + 8]
add esi, 0xfffffffd
mov dword [esp + 8], esi
mov dword [edi + 0x14], esi
mov esi, eax
add edx, 3
mov dword [edi + 0x10], edx
mov edi, dword [esp + 4]
mov edx, dword [0x6b83adb4]
mov ebx, edi
shr ebx, cl
mov eax, dword [esp + 0x14]
and ebx, dword [edx + eax*4 - 0x40]
lea ecx, [ecx + eax - 0x10]
shl ebx, 0x10
or ebx, esi
mov edx, dword [esp]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x18]
jmp 0x6b6ec5c2
mov eax, 0xffffffed
jmp 0x6b6eca88
mov ecx, dword [esp]
call fcn.6b6eef90
jmp 0x6b6ecae6