Function at 0x6fa070e0
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 0x6fa073b0
cmp dword [ebx + 0xc], eax
jne 0x6fa07454
mov edi, dword [esi + 0x48]
mov eax, dword [0x6fabb030]
cmp dword [edi + 4], eax
jne 0x6fa07530
movzx eax, byte [ebx + 0xd]
test al, al
js 0x6fa071e3
test al, 0x40
je 0x6fa07197
mov eax, dword [ebx]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x6fa07660
mov dword [esp], 8
call fcn.6faa4ea0
test eax, eax
je 0x6fa07767
mov dword [esp + 0x2c], eax
call fcn.6fa12e40
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [ecx], eax
je 0x6fa0775f
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.6fa12e70
test eax, eax
je 0x6fa076f9
mov dword [edi + 0x10], eax
cmp dword [ebx + 0x10], 8
jne 0x6fa07580
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.6fa0dac0
test eax, eax
mov edi, eax
je 0x6fa071d9
movzx eax, byte [ebp + 0x24]
test al, 0x10
jne 0x6fa07380
test al, 2
jne 0x6fa07340
test al, 4
jne 0x6fa07200
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 0x6fa0712a
add ecx, dword [ecx + 8]
test al, 0x40
mov dword [edi + 0x14], ecx
je 0x6fa07197
jmp 0x6fa0712e
lea eax, [esp + 0x3c]
mov dword [esp + 4], 5
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.6fa0e480
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6fa07261
test byte [edx + 0x1b], 0x20
je 0x6fa07261
mov edx, dword [edx + 0xc]
mov ecx, dword [edx + 8]
lea ebp, [edx + 0xc]
test ecx, ecx
je 0x6fa07261
mov ebx, dword [0x6fabb030]
cmp ebx, dword [edx + 0xc]
je 0x6fa071d9
sub ecx, 1
xor edx, edx
jmp 0x6fa0725d
add edx, 1
cmp dword [ebp + edx*4], ebx
je 0x6fa071d9
cmp ecx, edx
jne 0x6fa07250
test eax, eax
je 0x6fa072f0
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6fa0e480
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6fa07293
test byte [edx + 0x1b], 0x20
jne 0x6fa075e0
test eax, eax
je 0x6fa072f0
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6fa0e480
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6fa072f0
test byte [eax + 0x1b], 0x20
je 0x6fa072f0
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 8]
lea ebx, [eax + 0xc]
test edx, edx
je 0x6fa072f0
mov ecx, dword [0x6fabb030]
cmp dword [eax + 0xc], ecx
je 0x6fa071d9
sub edx, 1
xor eax, eax
jmp 0x6fa072ec
add eax, 1
cmp ecx, dword [ebx + eax*4]
je 0x6fa071d9
cmp eax, edx
jne 0x6fa072e0
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07781
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 4
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07774
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x455
jmp 0x6fa07496
call dword [0x6fac26c8]
test eax, eax
je 0x6fa07410
mov dword [esp], eax
call dword [0x6fac2718]
test eax, eax
je 0x6fa07410
mov eax, dword [eax + 8]
add eax, eax
cmp eax, 0x2c
jne 0x6fa07410
movzx eax, byte [ebp + 0x24]
test al, 4
je 0x6fa071d9
jmp 0x6fa07200
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6faa4e80
movzx eax, byte [ebp + 0x24]
test al, 2
je 0x6fa071d5
jmp 0x6fa07340
mov edi, dword [esi + 0x58]
mov dword [edx + 0x28], eax
add edi, 0x18
mov dword [esp], edi
call fcn.6fa9e250
test eax, eax
je 0x6fa074c0
mov edx, dword [esi + 0x60]
test edx, edx
je 0x6fa07750
movzx ebx, byte [edx]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov dword [esp], eax
call fcn.6fa1cfc0
cmp ebx, 1
je 0x6fa0773c
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x431
jmp 0x6fa07496
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07640
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 4
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa076d0
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x44e
jmp 0x6fa07496
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07650
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa075d0
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.6fa9ea90
test eax, eax
jne 0x6fa073c9
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.6fa9e2e0
test eax, eax
jne 0x6fa073c9
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.6fa9e620
test eax, eax
jne 0x6fa073c9
mov eax, dword [ebp + 0x24]
jmp 0x6fa07104
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa076b0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa076a3
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x3ef
jmp 0x6fa07496
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa07630
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa076c0
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x411
jmp 0x6fa07496
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0748e
mov ecx, dword [edx + 0xc]
mov ebx, dword [ecx + 8]
lea ebp, [ecx + 0xc]
test ebx, ebx
je 0x6fa07293
mov edx, dword [0x6fabb030]
cmp dword [ecx + 0xc], edx
je 0x6fa071d9
sub ebx, 1
xor ecx, ecx
jmp 0x6fa0761d
add ecx, 1
cmp edx, dword [ebp + ecx*4]
je 0x6fa071d9
cmp ebx, ecx
jne 0x6fa07610
jmp 0x6fa07293
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07594
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07424
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07468
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa076ea
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa076e0
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x400
jmp 0x6fa07496
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0756a
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07544
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa075ba
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0744a
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa07696
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07674
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa0779a
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6fa077a9
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp ebx, 1
je 0x6fa07790
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x409
jmp 0x6fa07496
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa073ff
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa073dd
mov dword [esp], ecx
call fcn.6faa4ec8
call dword [0x6fac26a0]
xor edi, edi
jmp 0x6fa071d9
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0732a
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa07304
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0772f
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6fa0770d
mov dword [esp], 1
call fcn.6faa4ee8
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.6fa17250
mov dword [esp + 8], 0x14
mov dword [esp + 4], str.pyarmor_vax
mov dword [esp], ebx
call fcn.6fa172b0
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.6fa172b0
mov eax, dword [esi - 0x1c]
mov dword [esp + 4], esi
mov esi, 0x6faaa0e0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6fa172b0
mov eax, esi
mov edx, 0x6faaa1ec
xor dword [eax], 0xf1f1f1f1
add eax, 4
cmp edx, eax
jne 0x6fa07833
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.6fa172b0
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.6fa16fc0
add esp, 0x1bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret