Function at 0x6ebc7240
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 0x6ebc7510
cmp dword [ebx + 0xc], eax
jne 0x6ebc75b4
mov edi, dword [esi + 0x48]
mov eax, dword [0x6ec7c030]
cmp dword [edi + 4], eax
jne 0x6ebc7690
movzx eax, byte [ebx + 0xd]
test al, al
js 0x6ebc7343
test al, 0x40
je 0x6ebc72f7
mov eax, dword [ebx]
add eax, ebx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x6ebc77c0
mov dword [esp], 8
call fcn.6ec668f0
test eax, eax
je 0x6ebc78c7
mov dword [esp + 0x2c], eax
call fcn.6ebd4890
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [ecx], eax
je 0x6ebc78bf
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.6ebd48c0
test eax, eax
je 0x6ebc7859
mov dword [edi + 0x10], eax
cmp dword [ebx + 0x10], 8
jne 0x6ebc76e0
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.6ebcef50
test eax, eax
mov edi, eax
je 0x6ebc7339
movzx eax, byte [ebp + 0x24]
test al, 0x10
jne 0x6ebc74e0
test al, 2
jne 0x6ebc74a0
test al, 4
jne 0x6ebc7360
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 0x6ebc728a
add ecx, dword [ecx + 8]
test al, 0x40
mov dword [edi + 0x14], ecx
je 0x6ebc72f7
jmp 0x6ebc728e
lea eax, [esp + 0x3c]
mov dword [esp + 4], 5
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.6ebcf940
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6ebc73c1
test byte [edx + 0x1b], 0x20
je 0x6ebc73c1
mov edx, dword [edx + 0xc]
mov ecx, dword [edx + 8]
lea ebp, [edx + 0xc]
test ecx, ecx
je 0x6ebc73c1
mov ebx, dword [0x6ec7c030]
cmp ebx, dword [edx + 0xc]
je 0x6ebc7339
sub ecx, 1
xor edx, edx
jmp 0x6ebc73bd
add edx, 1
cmp dword [ebp + edx*4], ebx
je 0x6ebc7339
cmp ecx, edx
jne 0x6ebc73b0
test eax, eax
je 0x6ebc7450
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 1
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6ebcf940
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x6ebc73f3
test byte [edx + 0x1b], 0x20
jne 0x6ebc7740
test eax, eax
je 0x6ebc7450
lea ecx, [esp + 0x3c]
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.6ebcf940
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x6ebc7450
test byte [eax + 0x1b], 0x20
je 0x6ebc7450
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 8]
lea ebx, [eax + 0xc]
test edx, edx
je 0x6ebc7450
mov ecx, dword [0x6ec7c030]
cmp dword [eax + 0xc], ecx
je 0x6ebc7339
sub edx, 1
xor eax, eax
jmp 0x6ebc744c
add eax, 1
cmp ecx, dword [ebx + eax*4]
je 0x6ebc7339
cmp eax, edx
jne 0x6ebc7440
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc78e1
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 4
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc78d4
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x455
jmp 0x6ebc75f6
call dword [0x6ec836d8]
test eax, eax
je 0x6ebc7570
mov dword [esp], eax
call dword [0x6ec83728]
test eax, eax
je 0x6ebc7570
mov eax, dword [eax + 8]
add eax, eax
cmp eax, 0x24
jne 0x6ebc7570
movzx eax, byte [ebp + 0x24]
test al, 4
je 0x6ebc7339
jmp 0x6ebc7360
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6ec668d0
movzx eax, byte [ebp + 0x24]
test al, 2
je 0x6ebc7335
jmp 0x6ebc74a0
mov edi, dword [esi + 0x58]
mov dword [edx + 0x28], eax
add edi, 0x18
mov dword [esp], edi
call fcn.6ec5fca0
test eax, eax
je 0x6ebc7620
mov edx, dword [esi + 0x60]
test edx, edx
je 0x6ebc78b0
movzx ebx, byte [edx]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov dword [esp], eax
call fcn.6ebdea10
cmp ebx, 1
je 0x6ebc789c
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x431
jmp 0x6ebc75f6
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc77a0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 4
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc7830
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x44e
jmp 0x6ebc75f6
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc77b0
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 7
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc7730
mov edx, dword [0x6ec836f0]
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 [0x6ec836ac]
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.6ec604e0
test eax, eax
jne 0x6ebc7529
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.6ec5fd30
test eax, eax
jne 0x6ebc7529
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.6ec60070
test eax, eax
jne 0x6ebc7529
mov eax, dword [ebp + 0x24]
jmp 0x6ebc7264
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc7810
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 7
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc7803
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x3ef
jmp 0x6ebc75f6
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc7790
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 7
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc7820
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x411
jmp 0x6ebc75f6
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc75ee
mov ecx, dword [edx + 0xc]
mov ebx, dword [ecx + 8]
lea ebp, [ecx + 0xc]
test ebx, ebx
je 0x6ebc73f3
mov edx, dword [0x6ec7c030]
cmp dword [ecx + 0xc], edx
je 0x6ebc7339
sub ebx, 1
xor ecx, ecx
jmp 0x6ebc777d
add ecx, 1
cmp edx, dword [ebp + ecx*4]
je 0x6ebc7339
cmp ebx, ecx
jne 0x6ebc7770
jmp 0x6ebc73f3
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc76f4
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc7584
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc75c8
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc784a
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 7
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc7840
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x400
jmp 0x6ebc75f6
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc76ca
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc76a4
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc771a
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc75aa
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc77f6
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc77d4
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6ebc78fa
movzx ebx, byte [eax]
shr bl, 2
and ebx, 3
cmp ebx, 2
je 0x6ebc7909
mov edx, 7
mov eax, esi
call fcn.6ebc1410
cmp ebx, 1
je 0x6ebc78f0
mov edx, dword [0x6ec836f0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x409
jmp 0x6ebc75f6
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc755f
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc753d
mov dword [esp], ecx
call fcn.6ec66918
call dword [0x6ec836b4]
xor edi, edi
jmp 0x6ebc7339
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc748a
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc7464
mov edx, dword [0x6ec836fc]
mov edx, dword [edx]
jmp 0x6ebc788f
movzx ebx, byte [esi + 8]
shr bl, 5
and ebx, 3
jmp 0x6ebc786d
mov dword [esp], 1
call fcn.6ec66938
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.6ebd8ca0
mov dword [esp + 8], 0x14
mov dword [esp + 4], str.pyarmor_vax
mov dword [esp], ebx
call fcn.6ebd8d00
mov eax, dword [0x6ec67054]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [0x6ec67050]
add eax, 0x6ec67060
mov dword [esp + 4], eax
call fcn.6ebd8d00
mov eax, dword [esi - 0x1c]
mov dword [esp + 4], esi
mov esi, 0x6ec6b0e0
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.6ebd8d00
mov eax, esi
mov edx, 0x6ec6b1ec
xor dword [eax], 0xf1f1f1f1
add eax, 4
cmp edx, eax
jne 0x6ebc7993
mov dword [esp], ebx
mov dword [esp + 8], 0x10e
mov edi, esi
mov dword [esp + 4], 0x6ec6b0e0
xor byte [0x6ec6b1ec], 0xf1
xor byte [0x6ec6b1ed], 0xf1
call fcn.6ebd8d00
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.6ebd8a10
add esp, 0x1bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret