Function at 0x6d6c70b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
mov ebp, edx
push esi
push ebx
mov esi, eax
sub esp, 0x3c
mov ebx, dword [edx + 0x1c]
mov eax, dword [edx + 0x20]
add ebx, edx
test byte [edx + 0x25], 7
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x24]
jne 0x6d6c7300
cmp dword [ebx + 0xc], eax
jne 0x6d6c73b4
mov edi, dword [esi + 0x48]
mov eax, dword [0x6d77b030]
cmp dword [edi + 4], eax
jne 0x6d6c7490
movzx eax, byte [ebx + 0xd]
test al, al
js 0x6d6c71b3
test al, 0x40
je 0x6d6c7167
mov eax, dword [ebx]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x6d6c7640
mov dword [esp], 8
call fcn.6d7655e0
test eax, eax
je 0x6d6c7737
mov dword [esp + 0x2c], eax
call fcn.6d6d35b0
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [ecx], eax
je 0x6d6c772f
mov edx, dword [esi + 0x54]
mov dword [esi + 0x54], ecx
mov dword [ecx + 4], edx
mov ecx, dword [ebx + 4]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
call fcn.6d6d35e0
test eax, eax
je 0x6d6c76d6
mov dword [edi + 0x10], eax
cmp dword [ebx + 0x10], 8
jne 0x6d6c75b0
mov dword [esp + 8], edi
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
add eax, ebx
add eax, dword [ebx]
mov dword [esp], eax
call fcn.6d6ce400
test eax, eax
mov edi, eax
je 0x6d6c71a9
movzx eax, byte [ebp + 0x24]
test al, 0x10
jne 0x6d6c72d0
test al, 2
jne 0x6d6c7295
test al, 4
jne 0x6d6c71d0
add esp, 0x3c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esi + 0x5c]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x6d6c70fa
add ecx, dword [ecx + 8]
test al, 0x40
mov dword [edi + 0x14], ecx
je 0x6d6c7167
jmp 0x6d6c70fe
call dword [0x6d7826a4]
test eax, eax
je 0x6d6c724e
mov edx, 5
jmp 0x6d6c71e5
test cl, cl
je 0x6d6c71f2
mov eax, dword [eax + 0xc]
test eax, eax
setne cl
sub edx, 1
jne 0x6d6c71e1
test edx, edx
jne 0x6d6c7360
test cl, cl
je 0x6d6c7360
mov edx, dword [eax + 0x10]
test edx, edx
je 0x6d6c7243
test byte [edx + 0x1f], 0x20
je 0x6d6c7243
mov edx, dword [edx + 0x28]
mov ecx, dword [edx + 8]
lea ebp, [edx + 0xc]
test ecx, ecx
je 0x6d6c7243
mov ebx, dword [0x6d77b030]
cmp ebx, dword [edx + 0xc]
je 0x6d6c71a9
sub ecx, 1
xor edx, edx
jmp 0x6d6c723f
add edx, 1
cmp dword [ebp + edx*4], ebx
je 0x6d6c71a9
cmp ecx, edx
jne 0x6d6c7232
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x6d6c74e0
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c761f
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 4
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c7744
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x455
jmp 0x6d6c73f6
call dword [0x6d7826a4]
test eax, eax
je 0x6d6c7370
mov eax, dword [eax + 0x10]
test eax, eax
je 0x6d6c7370
mov eax, dword [eax + 0x24]
cmp dword [eax + 8], 0x1c
jne 0x6d6c7370
movzx eax, byte [ebp + 0x24]
test al, 4
je 0x6d6c71a9
jmp 0x6d6c71d0
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6d7655c0
movzx eax, byte [ebp + 0x24]
test al, 2
je 0x6d6c71a5
jmp 0x6d6c7295
mov edi, dword [esi + 0x58]
mov dword [edx + 0x28], eax
add edi, 0x18
mov dword [esp], edi
call fcn.6d75e990
test eax, eax
je 0x6d6c7420
mov edx, dword [esi + 0x60]
test edx, edx
je 0x6d6c7720
movzx ebx, byte [edx]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov dword [esp], eax
call fcn.6d6dd700
cmp ebx, 1
je 0x6d6c7711
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x431
jmp 0x6d6c73f6
test eax, eax
jne 0x6d6c7243
jmp 0x6d6c724e
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c7610
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 4
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c76b0
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x44e
jmp 0x6d6c73f6
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c7630
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 7
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c75f3
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x43a
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
xor edi, edi
mov dword [esp + 4], str._s___d:_d_
mov dword [esp], edx
call dword [0x6d782674]
add esp, 0x3c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp + 0x28]
mov dword [esp + 8], 0xc
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.6d75f1d0
test eax, eax
jne 0x6d6c7319
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.6d75ea20
test eax, eax
jne 0x6d6c7319
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.6d75ed60
test eax, eax
jne 0x6d6c7319
mov eax, dword [ebp + 0x24]
jmp 0x6d6c70d4
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c7690
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 7
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c7683
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x3ef
jmp 0x6d6c73f6
mov edx, dword [eax + 0x10]
test edx, edx
je 0x6d6c7521
test byte [edx + 0x1f], 0x20
je 0x6d6c7521
mov edx, dword [edx + 0x28]
mov ecx, dword [edx + 8]
lea ebp, [edx + 0xc]
test ecx, ecx
je 0x6d6c7521
mov ebx, dword [0x6d77b030]
cmp dword [edx + 0xc], ebx
je 0x6d6c71a9
sub ecx, 1
xor edx, edx
jmp 0x6d6c751d
add edx, 1
cmp ebx, dword [ebp + edx*4]
je 0x6d6c71a9
cmp ecx, edx
jne 0x6d6c7510
mov ebx, 2
jmp 0x6d6c7534
test cl, cl
je 0x6d6c7549
mov eax, dword [eax + 0xc]
lea edx, [ebx - 1]
mov ebx, 1
test eax, eax
setne cl
test dl, 1
jne 0x6d6c7530
and edx, 1
jne 0x6d6c724e
test cl, cl
je 0x6d6c724e
mov eax, dword [eax + 0x10]
test eax, eax
je 0x6d6c724e
test byte [eax + 0x1f], 0x20
je 0x6d6c724e
mov eax, dword [eax + 0x28]
mov edx, dword [eax + 8]
lea ebx, [eax + 0xc]
test edx, edx
je 0x6d6c724e
mov ecx, dword [0x6d77b030]
cmp ecx, dword [eax + 0xc]
je 0x6d6c71a9
sub edx, 1
xor eax, eax
cmp edx, eax
je 0x6d6c724e
add eax, 1
cmp ecx, dword [ebx + eax*4]
jne 0x6d6c7594
jmp 0x6d6c71a9
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c7600
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 7
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c76a0
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x411
jmp 0x6d6c73f6
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c73ee
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c75c0
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c7384
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c7262
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c73c8
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c76c7
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 7
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c76bd
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x400
jmp 0x6d6c73f6
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c74ca
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c74a4
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c75e6
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c73aa
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c7676
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c7654
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6d6c775b
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6d6c776a
mov edx, 7
mov eax, esi
call fcn.6d6c1410
cmp ebx, 1
je 0x6d6c7751
mov edx, dword [0x6d7826bc]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x409
jmp 0x6d6c73f6
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c734f
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c732d
mov dword [esp], ecx
call fcn.6d765608
call dword [0x6d78267c]
xor edi, edi
jmp 0x6d6c71a9
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c7288
mov edx, dword [0x6d7826c4]
mov edx, dword [edx]
jmp 0x6d6c7704
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6d6c76e6
mov dword [esp], 1
call fcn.6d765628
lea esi, [esi]
lea edi, [edi]
push ebp
push edi
mov ebp, edx
push esi
push ebx
mov esi, eax
add esi, 0x20
sub esp, 0x1bc
lea ebx, [esp + 0x10]
mov dword [esp], ebx
call fcn.6d6d7990
mov dword [esp + 8], 0x14
mov dword [esp + 4], str.pyarmor_vax
mov dword [esp], ebx
call fcn.6d6d79f0
mov eax, dword [0x6d766054]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [0x6d766050]
add eax, 0x6d766060
mov dword [esp + 4], eax
call fcn.6d6d79f0
mov eax, dword [esi - 0x1c]
mov dword [esp + 4], esi
mov esi, 0x6d76a0e0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6d6d79f0
mov eax, esi
mov edx, 0x6d76a1ec
xor dword [eax], 0xf1f1f1f1
add eax, 4
cmp edx, eax
jne 0x6d6c77f3
mov dword [esp], ebx
mov dword [esp + 8], 0x10e
mov edi, esi
mov dword [esp + 4], 0x6d76a0e0
xor byte [0x6d76a1ec], 0xf1
xor byte [0x6d76a1ed], 0xf1
call fcn.6d6d79f0
xor eax, eax
mov ecx, 0x43
rep stosd dword es:[edi], eax
xor eax, eax
mov word [edi], ax
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.6d6d7700
add esp, 0x1bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret