Function at 0x2703a63f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x32c
mov eax, dword [0x270b313c]
xor eax, esp
mov dword [esp + 0x328], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [esp + 0x14], eax
mov esi, ecx
cmp ebx, 0x180
jbe 0x2703a678
push 0xffffffffffffffc8
pop eax
jmp 0x2703a883
push 0x1a0
lea eax, [esp + 0x194]
push 0
push eax
call sub.msvcrt.dll_memset
lea eax, [esp + 0x24]
add esp, 0xc
push eax
call fcn.2703e215
mov eax, ebx
shr eax, 0x18
mov byte [esp + 0x1a4], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x1a5], al
pop ecx
mov eax, ebx
shr eax, 8
push ebx
mov byte [esp + 0x1a6], al
lea eax, [esp + 0x1ac]
push esi
push eax
mov byte [esp + 0x1af], bl
mov byte [esp + 0x1b3], 0x30
call sub.msvcrt.dll_memcpy
mov byte [esp + ebx + 0x1b4], 0x80
add ebx, 0x19
add esp, 0xc
mov dword [esp + 0x10], ebx
xor eax, eax
mov byte [esp + eax + 0x170], al
inc eax
cmp eax, 0x20
jl 0x2703a6f0
lea eax, [esp + 0x170]
push 0x100
push eax
lea edx, [esp + 0x20]
call fcn.2703e246
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x2703a822
and dword [esp + 0xc], eax
xor eax, eax
lea edi, [esp + 0x130]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
test edi, edi
jbe 0x2703a78e
lea esi, [esp + 0x190]
lea eax, [esp + 0x130]
sub esi, eax
xor ecx, ecx
lea eax, [esp + ecx + 0x130]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, 0x10
jl 0x2703a74a
push 0x10
pop eax
add esi, eax
cmp edi, eax
jae 0x2703a767
mov eax, edi
sub edi, eax
lea eax, [esp + 0x18]
push 1
lea ecx, [esp + 0x134]
push eax
mov eax, ecx
call fcn.2703f086
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x2703a822
test edi, edi
ja 0x2703a748
mov edi, dword [esp + 0xc]
add dword [esp + 0xc], 0x10
inc byte [esp + 0x193]
cmp dword [esp + 0xc], 0x30
lea edi, [esp + edi + 0x140]
lea esi, [esp + 0x130]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jl 0x2703a723
lea eax, [esp + 0x140]
push 0x100
push eax
lea edx, [esp + 0x20]
call fcn.2703e246
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x2703a822
mov eax, dword [esp + 0x14]
and dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x18]
push 1
lea ecx, [esp + 0x164]
push eax
mov eax, ecx
call fcn.2703f086
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x2703a822
mov edi, dword [esp + 0x10]
add dword [esp + 0xc], 0x10
add dword [esp + 0x10], 0x10
cmp dword [esp + 0xc], 0x30
lea esi, [esp + 0x160]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jl 0x2703a7e5
lea eax, [esp + 0x18]
push eax
call fcn.2703e22c
lea eax, [esp + 0x194]
mov dword [esp], 0x1a0
push eax
call fcn.270419d8
lea eax, [esp + 0x148]
push 0x30
push eax
call fcn.270419d8
lea eax, [esp + 0x180]
push 0x20
push eax
call fcn.270419d8
lea eax, [esp + 0x148]
push 0x10
push eax
call fcn.270419d8
add esp, 0x20
test ebx, ebx
je 0x2703a881
push 0x30
push dword [esp + 0x18]
call fcn.270419d8
pop ecx
pop ecx
mov eax, ebx
mov ecx, dword [esp + 0x334]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.27088f70
mov esp, ebp
pop ebp
ret