Function at 0x5a2670
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7a7a22
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
mov eax, dword [0x831184]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
mov edx, edi
call fcn.0045e980
lea eax, [esi + 0x3c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404120
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x54]
call fcn.00403b80
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.00411e20
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00404220
lea ecx, [ebp - 0x54]
call fcn.00404490
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.00404490
test esi, esi
je 0x5a2726
push esi
mov ecx, edi
call fcn.004123d0
movaps xmm0, xmmword [0x7e5c40]
xor eax, eax
mov ecx, 0x14
mov dword [ebp - 0x38], 0xd9c3df97
mov dword [ebp - 0x4c], ecx
movups xmmword [ebp - 0x48], xmm0
mov byte [ebp - 0x34], 0xbd
mov word [ebp - 0x33], ax
mov byte [ebp - 0x31], al
nop dword [eax]
lea ecx, [eax - 0x57]
xor byte [ebp + eax - 0x48], cl
inc eax
mov ecx, dword [ebp - 0x4c]
cmp eax, ecx
jb 0x5a2750
mov byte [ebp + ecx - 0x48], 0
lea eax, [ebp - 0x48]
mov byte [ebp - 0x2c], 0
lea edx, [ebp - 0x30]
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x30], eax
call fcn.0041c930
add esp, 4
mov dword [ebp - 4], 4
xor ecx, ecx
movaps xmm0, xmmword [0x7e5b10]
mov dword [ebp - 0xa4], 0xf
movups xmmword [ebp - 0xa0], xmm0
mov al, cl
sub al, 0x57
xor byte [ebp + ecx - 0xa0], al
inc ecx
mov eax, dword [ebp - 0xa4]
cmp ecx, eax
jb 0x5a27a3
mov byte [ebp + eax - 0xa0], 0
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0xa0]
mov byte [ebp - 0x30], 0
push dword [ebp - 0x30]
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x2c], eax
call fcn.0041c930
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 5
push 8
push eax
call fcn.00427030
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.00404120
lea eax, [ebp - 0xbc]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
call fcn.00414b80
push eax
lea ecx, [ebp - 0x6c]
call fcn.00404120
lea ecx, [ebp - 0x28]
call fcn.00404490
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x84]
call fcn.00404120
lea eax, [ebp - 0xd4]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x84]
call fcn.00414b80
push eax
lea ecx, [ebp - 0x28]
call fcn.00404120
lea ecx, [ebp - 0x84]
call fcn.00404490
lea ecx, [ebp - 0x6c]
call fcn.00404490
lea ecx, [ebp - 0xec]
call fcn.00404490
lea ecx, [ebp - 0xbc]
call fcn.00404490
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xe
call fcn.00404490
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00404120
xor eax, eax
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 7
mov word [ebp - 0x90], ax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x90]
call fcn.00403b80
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x12
push eax
call fcn.00418540
add esp, 4
lea ecx, [ebp - 0x78]
mov bl, al
call fcn.00404220
lea ecx, [ebp - 0x90]
call fcn.00404490
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xe
call fcn.00404490
test bl, bl
je 0x5a2929
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00404120
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x13
push eax
mov ecx, edi
call fcn.004125a0
lea ecx, [ebp - 0x6c]
call fcn.00404490
lea ecx, [ebp - 0x28]
call fcn.00404490
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0076eb7e
mov esp, ebp
pop ebp
ret 4