Function at 0x1002bc40
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x40
call fcn.100bf140
mov eax, dword [0x10116cb0]
xor eax, esp
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov dword [esp], edx
mov dword [esp + 0xc], eax
push ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x18], ebp
push esi
mov esi, dword [esp + 0x5c]
push edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], edi
cmp ecx, 0x10
ja 0x1002bc98
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100bf100
add esp, 0x40
ret
push ebx
mov ebx, ecx
mov eax, 0x10
and ebx, 0xf
cmove ebx, eax
mov eax, 0xfffffff0
sub eax, ebx
mov dword [esp + 0x18], ebx
add ecx, eax
mov dword [esp + 0x28], ecx
je 0x1002bcde
push dword [esp + 0x1c]
push esi
push edx
push ecx
push ebp
push edi
call sym.LIBEAY32.dll_CRYPTO_cbc128_decrypt
add edi, dword [esp + 0x40]
add esp, 0x18
add ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], ebp
push edx
lea eax, [esp + 0x40]
push eax
push edi
call dword [esp + 0x28]
movdqu xmm0, xmmword [esp + 0x48]
push ebx
lea eax, [edi + 0x10]
push eax
lea eax, [esp + 0x40]
push eax
movdqu xmmword [esp + 0x44], xmm0
call sub.MSVCR120.dll_memcpy
push dword [esp + 0x28]
lea eax, [esp + 0x48]
push eax
push eax
call dword [esp + 0x40]
lea ecx, [esp + 0x5f]
add esp, 0x24
xor eax, eax
lea edx, [esi + 0xf]
cmp esi, ecx
ja 0x1002bd2a
lea ecx, [esp + 0x2c]
cmp edx, ecx
jae 0x1002bd5f
lea ecx, [ebp + 0xf]
cmp esi, ecx
ja 0x1002bd35
cmp edx, ebp
jae 0x1002bd5f
lea ebx, [edi + 0xf]
cmp esi, ebx
mov ebx, dword [esp + 0x18]
ja 0x1002bd44
cmp edx, edi
jae 0x1002bd5f
lea edx, [esp + 0x3b]
cmp ebp, edx
ja 0x1002bd54
lea edx, [esp + 0x2c]
cmp ecx, edx
jae 0x1002bd5f
lea edx, [edi + 0xf]
cmp ebp, edx
ja 0x1002bdc0
cmp ecx, edi
jb 0x1002bdc0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x10], edi
sub edi, ecx
lea edx, [esp + 0x2c]
mov ecx, ebp
mov ebp, esi
sub ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, edx
sub ebp, ecx
jmp 0x1002bd80
mov dl, byte [esp + eax + 0x2c]
lea ecx, [edi + eax]
mov bl, byte [esp + ecx + 0x2c]
lea esi, [esp + 0x2c]
lea ecx, [eax + ebp]
add esi, ecx
mov ecx, dword [esp + 0x10]
add ecx, eax
inc eax
xor dl, byte [esi]
mov byte [esp + ecx + 0x2c], dl
mov byte [esi], bl
cmp eax, 0x10
jb 0x1002bd80
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
jmp 0x1002bde0
movdqu xmm1, xmmword [esi]
mov eax, 0x10
movdqu xmm0, xmmword [esp + 0x2c]
movdqu xmm2, xmmword [edi]
pxor xmm1, xmm0
movdqu xmmword [ebp], xmm1
movdqu xmmword [esi], xmm2
add ebx, 0x10
mov esi, ebx
mov dword [esp + 0x18], ebx
sub esi, eax
cmp eax, ebx
jae 0x1002be93
cmp esi, 0x10
jb 0x1002be72
lea ecx, [eax + ebp]
mov dword [esp + 0x14], ecx
lea edx, [ebp - 1]
lea ecx, [esp + ebx + 0x2b]
add edx, ebx
cmp dword [esp + 0x14], ecx
ja 0x1002be18
lea ecx, [esp + 0x2c]
add ecx, eax
cmp edx, ecx
jae 0x1002be72
lea ecx, [edi - 1]
add ecx, ebx
lea edx, [edi + eax]
cmp dword [esp + 0x14], ecx
ja 0x1002be2f
lea ecx, [ebp - 1]
add ecx, ebx
cmp ecx, edx
jae 0x1002be72
and esi, 0xf
mov ecx, ebx
sub ecx, esi
mov esi, ebp
lea ebp, [esp + 0x2c]
sub esi, edi
sub ebp, edi
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
lea esp, [esp]
movdqu xmm1, xmmword [ebx + edx]
add eax, 0x10
lea edx, [edx + 0x10]
movdqu xmm0, xmmword [edx - 0x10]
pxor xmm1, xmm0
movdqu xmmword [esi + edx - 0x10], xmm1
cmp eax, ecx
jb 0x1002be50
mov ebx, dword [esp + 0x18]
cmp eax, ebx
jae 0x1002be93
lea ecx, [esp + 0x2c]
sub edi, ecx
sub ebp, ecx
mov edi, edi
lea edx, [esp + 0x2c]
add edx, eax
inc eax
mov cl, byte [edi + edx]
xor cl, byte [edx]
mov byte [edx + ebp], cl
cmp eax, ebx
jb 0x1002be80
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
add eax, 0x10
add eax, ebx
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.100bf100
add esp, 0x40
ret