Function at 0x6fa07060
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
mov ebp, edx
push esi
push ebx
mov esi, eax
sub esp, 0x4c
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 0x6fa07330
cmp dword [ebx + 0xc], eax
jne 0x6fa073d4
mov edi, dword [esi + 0x48]
mov eax, dword [0x6fabb030]
cmp dword [edi + 4], eax
jne 0x6fa074b0
movzx eax, byte [ebx + 0xd]
test al, al
js 0x6fa07163
test al, 0x40
je 0x6fa07117
mov eax, dword [ebx]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x6fa075e0
mov dword [esp], 8
call fcn.6faa4cb0
test eax, eax
je 0x6fa076e7
mov dword [esp + 0x2c], eax
call fcn.6fa12c50
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [ecx], eax
je 0x6fa076df
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.6fa12c80
test eax, eax
je 0x6fa07679
mov dword [edi + 0x10], eax
cmp dword [ebx + 0x10], 8
jne 0x6fa07500
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.6fa0d990
test eax, eax
mov edi, eax
je 0x6fa07159
movzx eax, byte [ebp + 0x24]
test al, 0x10
jne 0x6fa07300
test al, 2
jne 0x6fa072c0
test al, 4
jne 0x6fa07180
add esp, 0x4c
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 0x6fa070aa
add ecx, dword [ecx + 8]
test al, 0x40
mov dword [edi + 0x14], ecx
je 0x6fa07117
jmp 0x6fa070ae
lea eax, [esp + 0x3c]
mov dword [esp + 4], 5
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.6fa0e350
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6fa071e1
test byte [edx + 0x1b], 0x20
je 0x6fa071e1
mov edx, dword [edx + 0xc]
mov ecx, dword [edx + 8]
lea ebp, [edx + 0xc]
test ecx, ecx
je 0x6fa071e1
mov ebx, dword [0x6fabb030]
cmp ebx, dword [edx + 0xc]
je 0x6fa07159
sub ecx, 1
xor edx, edx
jmp 0x6fa071dd
add edx, 1
cmp dword [ebp + edx*4], ebx
je 0x6fa07159
cmp ecx, edx
jne 0x6fa071d0
test eax, eax
je 0x6fa07270
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6fa0e350
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6fa07213
test byte [edx + 0x1b], 0x20
jne 0x6fa07560
test eax, eax
je 0x6fa07270
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6fa0e350
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6fa07270
test byte [eax + 0x1b], 0x20
je 0x6fa07270
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 8]
lea ebx, [eax + 0xc]
test edx, edx
je 0x6fa07270
mov ecx, dword [0x6fabb030]
cmp dword [eax + 0xc], ecx
je 0x6fa07159
sub edx, 1
xor eax, eax
jmp 0x6fa0726c
add eax, 1
cmp ecx, dword [ebx + eax*4]
je 0x6fa07159
cmp eax, edx
jne 0x6fa07260
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07701
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 4
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa076f4
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x455
jmp 0x6fa07416
call dword [0x6fac26c8]
test eax, eax
je 0x6fa07390
mov dword [esp], eax
call dword [0x6fac2718]
test eax, eax
je 0x6fa07390
mov eax, dword [eax + 8]
add eax, eax
cmp eax, 0x2c
jne 0x6fa07390
movzx eax, byte [ebp + 0x24]
test al, 4
je 0x6fa07159
jmp 0x6fa07180
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6faa4c90
movzx eax, byte [ebp + 0x24]
test al, 2
je 0x6fa07155
jmp 0x6fa072c0
mov edi, dword [esi + 0x58]
mov dword [edx + 0x28], eax
add edi, 0x18
mov dword [esp], edi
call fcn.6fa9e060
test eax, eax
je 0x6fa07440
mov edx, dword [esi + 0x60]
test edx, edx
je 0x6fa076d0
movzx ebx, byte [edx]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov dword [esp], eax
call fcn.6fa1cdd0
cmp ebx, 1
je 0x6fa076bc
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x431
jmp 0x6fa07416
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa075c0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 4
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07650
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x44e
jmp 0x6fa07416
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa075d0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07550
mov edx, dword [0x6fac26e0]
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 [0x6fac2698]
add esp, 0x4c
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.6fa9e8a0
test eax, eax
jne 0x6fa07349
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.6fa9e0f0
test eax, eax
jne 0x6fa07349
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.6fa9e430
test eax, eax
jne 0x6fa07349
mov eax, dword [ebp + 0x24]
jmp 0x6fa07084
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07630
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07623
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x3ef
jmp 0x6fa07416
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa075b0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07640
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x411
jmp 0x6fa07416
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0740e
mov ecx, dword [edx + 0xc]
mov ebx, dword [ecx + 8]
lea ebp, [ecx + 0xc]
test ebx, ebx
je 0x6fa07213
mov edx, dword [0x6fabb030]
cmp dword [ecx + 0xc], edx
je 0x6fa07159
sub ebx, 1
xor ecx, ecx
jmp 0x6fa0759d
add ecx, 1
cmp edx, dword [ebp + ecx*4]
je 0x6fa07159
cmp ebx, ecx
jne 0x6fa07590
jmp 0x6fa07213
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07514
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa073a4
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa073e8
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa0766a
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07660
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x400
jmp 0x6fa07416
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa074ea
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa074c4
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0753a
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa073ca
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa07616
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa075f4
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa0771a
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa07729
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07710
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x409
jmp 0x6fa07416
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0737f
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa0735d
mov dword [esp], ecx
call fcn.6faa4cd8
call dword [0x6fac26a0]
xor edi, edi
jmp 0x6fa07159
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa072aa
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07284
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa076af
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa0768d
mov dword [esp], 1
call fcn.6faa4cf8
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.6fa17060
mov dword [esp + 8], 0x14
mov dword [esp + 4], str.pyarmor_vax_005439
mov dword [esp], ebx
call fcn.6fa170c0
mov eax, dword [0x6faa6054]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [0x6faa6050]
add eax, 0x6faa6060
mov dword [esp + 4], eax
call fcn.6fa170c0
mov eax, dword [esi - 0x1c]
mov dword [esp + 4], esi
mov esi, 0x6faaa0e0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6fa170c0
mov eax, esi
mov edx, 0x6faaa1ec
xor dword [eax], 0xf1f1f1f1
add eax, 4
cmp edx, eax
jne 0x6fa077b3
mov dword [esp], ebx
mov dword [esp + 8], 0x10e
mov edi, esi
mov dword [esp + 4], 0x6faaa0e0
xor byte [0x6faaa1ec], 0xf1
xor byte [0x6faaa1ed], 0xf1
call fcn.6fa170c0
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.6fa16dd0
add esp, 0x1bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret