Function at 0x360270
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov ecx, dword [0x10376020]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
test esi, esi
cmove esi, edx
mov dword [ebp - 0x6c], esi
pxor xmm0, xmm0
movdqu xmmword [ebp - 0x60], xmm0
mov ecx, dword [edx + 4]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], ecx
cmp eax, 0xffffffff
jne 0x36054b
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
push dword [esi + 4]
call fcn.00350240
add esp, 4
add eax, 7
mov ecx, eax
and ecx, 7
mov dword [ebp - 0x74], ecx
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x360579
shr eax, 3
movzx edx, byte [ebx]
mov ecx, dword [ebp - 0x74]
mov esi, ecx
shr edx, cl
test edx, edx
mov edx, dword [ebp - 0x68]
jne 0x360508
xor ecx, ecx
test esi, esi
sete cl
mov dword [ebp - 0x78], eax
mov edi, eax
mov dword [ebp - 0x70], ecx
sub edi, ecx
mov ecx, dword [ebp - 0x64]
lea eax, [ecx + 2]
cmp edi, eax
jb 0x3604bd
add eax, edx
cmp edi, eax
jae 0x36031e
test edx, edx
jns 0x3604bd
add ebx, dword [ebp - 0x70]
cmp byte [ebx + edi - 1], 0xbc
jne 0x360516
mov eax, ecx
not eax
add edi, eax
push edi
call fcn.0038ab10
add esp, 4
test eax, eax
je 0x3604d5
mov esi, eax
lea eax, [ebx + edi]
push dword [ebp - 0x6c]
push dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
push eax
push edi
push esi
call fcn.00360100
add esp, 0x14
test eax, eax
je 0x3604f6
test edi, edi
je 0x360375
xor eax, eax
mov cl, byte [ebx + eax]
xor byte [esi + eax], cl
inc eax
cmp edi, eax
jne 0x36036a
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x360389
mov cl, 8
sub cl, al
mov eax, 0xff
shr eax, cl
and byte [esi], al
neg dword [ebp - 0x70]
lea eax, [edi - 1]
xor ebx, ebx
mov edx, ebx
mov cl, byte [esi + ebx]
inc ebx
cmp edx, eax
jae 0x36039f
test cl, cl
je 0x360391
cmp cl, 1
jne 0x3604db
mov eax, dword [ebp - 0x68]
test eax, eax
js 0x3603c4
mov ecx, dword [ebp - 0x78]
add ecx, dword [ebp - 0x70]
not eax
add eax, ecx
sub eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x36053a
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x20], xmm0
movdqu xmmword [ebp - 0x30], xmm0
movdqu xmmword [ebp - 0x40], xmm0
movdqu xmmword [ebp - 0x50], xmm0
sub esp, 4
lea eax, [ebp - 0x60]
push dword [ebp + 0x10]
push eax
call fcn.00357df0
add esp, 0xc
test eax, eax
je 0x3604f6
sub edi, ebx
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x10]
call dword [0x10391000]
push 8
push 0x10323cc7
lea eax, [ebp - 0x60]
push eax
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x10]
call dword [0x10391000]
push dword [ebp - 0x64]
push dword [ebp + 0xc]
lea eax, [ebp - 0x60]
push eax
call ecx
add esp, 0xc
mov eax, esi
add eax, ebx
mov ebx, eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x10]
call dword [0x10391000]
push edi
push ebx
lea ebx, [ebp - 0x60]
push ebx
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x14]
call dword [0x10391000]
lea edi, [ebp - 0x50]
push edi
push ebx
call ecx
add esp, 8
mov eax, dword [ebp - 0x60]
push dword [eax + 0x1c]
push dword [ebp - 0x5c]
call fcn.0038ac10
mov eax, dword [ebp - 0x64]
add esp, 8
xor ebx, ebx
inc ebx
test eax, eax
je 0x36048e
push eax
push dword [ebp - 0x6c]
push edi
call fcn.002a79bd
add esp, 0xc
test eax, eax
jne 0x3604fa
push esi
call fcn.0038abe0
add esp, 4
push dword [ebp - 0x5c]
call fcn.0038abe0
add esp, 4
mov eax, dword [ebp - 0x54]
test eax, eax
jne 0x360524
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.002a5ceb
mov eax, ebx
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0xfa
push 0x10323c87
push 0x71
push 0
push 4
call fcn.0039f2d0
add esp, 0x14
xor ebx, ebx
xor esi, esi
jmp 0x36048e
push 0x119
push 0x10323c87
push 0x8b
push 0
push 4
call fcn.0039f2d0
add esp, 0x14
xor ebx, ebx
jmp 0x36048e
push 0x12b
push 0x10323c87
push 0x69
jmp 0x3604ea
push 0xf0
push 0x10323c87
push 0x7a
jmp 0x3604c9
push 0xfe
push 0x10323c87
push 0x7f
jmp 0x3604c9
mov ecx, dword [eax]
mov esi, dword [ebp - 0x58]
call dword [0x10391000]
push esi
call ecx
add esp, 4
jmp 0x3604a9
push 0x11f
push 0x10323c87
push 0x8a
jmp 0x3604ea
cmp eax, 0xfffffffe
jne 0x36055c
mov dword [ebp - 0x68], 0xfffffffe
jmp 0x3602b0
mov dword [ebp - 0x68], eax
jge 0x3602b0
push 0xe9
push 0x10323c87
push 0x8a
jmp 0x3604c9
call dword [0x10391000]
push esi
call ecx
add esp, 4
jmp 0x3602dc