Function at 0x405a10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
xchg edi, edi
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [esp - 0x30], esi
mov dword [ebp - 0xc], ecx
lea eax, [ebx + 4]
mov dword [ebp - 8], eax
mov dword [esp - 0xc], 0x2c2b19ca
mov eax, dword [eax]
mov dword [ebp + 8], eax
cmp eax, 2
xchg ebp, ebp
jbe 0x405a41
mov ebx, dword [ebx]
inc eax
mov ecx, 0xfe71409
xchg edx, edx
add ecx, 0x6c3173eb
sub ecx, 0x23d62e6e
sub ecx, 0x4690a4fa
add ecx, 0x3b4421ea
xchg edi, edi
xor ecx, 0x17c93af3
xor ecx, 0x5b3cec87
mul ecx
mov dword [esp - 0x28], edx
pushf
mov ecx, 0x524e3959
sub ecx, 0xa57f68b
add ecx, 0x8730300
xchg ebx, ebx
sub ecx, 0xa30c375
sub ecx, 0x234e5980
xor ecx, 0x6cf281c9
xor ecx, 0xb1e756ef
xchg ebx, ebx
popf
cmovb eax, ecx
push eax
mov dword [esp - 0x14], esp
call fcn.00490c90
mov esi, eax
add esp, 4
xchg esi, esi
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], esi
test eax, eax
mov dword [esp - 0x2c], 0x1ac35f2c
je 0x405b38
mov edx, esi
sub ebx, esi
mov dword [esp - 0x1c], 0x2a9b756d
mov esi, eax
mov edi, edi
mov ecx, edi
xchg ecx, ecx
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x4fe20c97
sub eax, 0x1707eb7a
mov esi, esi
sub eax, 0x2e3a2fb8
add eax, 0x45fa855c
sub eax, 0x36e8e571
mov ebx, ebx
xor eax, 0x24338e12
add eax, 0x3e2825af
shl ecx, 3
inc edi
mov dword [esp - 0x14], ecx
sar eax, cl
cbw
xor ax, word [edx + ebx - 2]
mov dword [esp - 0x18], 0x57a44072
mov word [edx - 2], ax
cmp edi, esi
jb 0x405ade
mov esi, dword [ebp - 4]
mov esi, esi
mov eax, dword [ebp + 8]
xor ecx, ecx
push ecx
push ecx
mov dword [esp - 0x20], ecx
mov word [esi + eax*2], cx
mov eax, dword [ebp - 8]
push ecx
mov dword [esp - 0x3c], 0x2ce03228
push ecx
mov eax, dword [eax]
push eax
push esi
mov dword [esp - 0x24], edx
mov dword [ebp + 8], eax
mov eax, dword [0x4c0b80]
xor eax, dword [0x4c0968]
push ecx
xchg edx, edx
nop
mov dword [esp - 4], 0x7337abc6
sub dword [esp - 4], 0x2232f0ca
xchg esp, esp
add dword [esp - 4], 0x23aa2dc4
sub dword [esp - 4], 0x5e09ae54
sub dword [esp - 4], 0x16a43c83
mov dword [esp - 0x18], esp
sub esp, 4
call eax
mov dword [ebp - 8], eax
lea edi, [eax + 1]
mov edx, edx
push edi
call fcn.00490c90
mov ecx, dword [0x4c0b80]
mov ebp, ebp
add esp, 4
xor ecx, dword [0x4c0968]
mov ebx, eax
nop
mov dword [esp - 0x44], 0x7c4e4181
sub esp, 4
mov dword [esp], 0x9389789
sub dword [esp], 0x2fb8273
mov ebx, ebx
sub dword [esp], 0x154187d
add dword [esp], 0x31f6517c
sub dword [esp], 0xae4d7f8
xor dword [esp], 0x62033163
mov ebx, ebx
sub dword [esp], 0x49f9477e
nop
sub esp, 4
mov dword [esp - 0x38], 0x278704cc
mov dword [esp], 0x6ecdedfc
xor dword [esp], 0x6417afc5
xor dword [esp], 0x2fed353c
add dword [esp], 0x1cc3af0b
mov dword [esp - 0x10], 0x14acf021
xor dword [esp], 0x6782c399
xor dword [esp], 0x5cde988d
sub dword [esp], 0x7aa77d04
mov dword [esp - 0x44], ebx
push edi
push ebx
push dword [ebp + 8]
push esi
mov dword [esp - 0x24], 0x634ed44f
nop
sub esp, 4
mov dword [esp], 0x59fd3e7
xchg esi, esi
add dword [esp], 0x625bb46b
sub dword [esp], 0xd247ece
sub dword [esp], 0x24a99a01
xor dword [esp], 0x4c3b86f0
mov esi, esi
sub dword [esp], 0x486956d6
sub dword [esp], 0x31ad929d
nop
xchg edi, edi
mov dword [esp - 4], 0x2d2cb51d
sub dword [esp - 4], 0x24d3fa5c
sub dword [esp - 4], 0x416db49
mov ecx, ecx
add dword [esp - 4], 0x1c4ffdec
add dword [esp - 4], 0x13110823
xor dword [esp - 4], 0x33a2186e
sub esp, 4
mov dword [esp - 0x3c], 0x16a4cb3
call ecx
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
push esi
mov dword [esp - 0x18], ebp
mov byte [ebx + eax], 0x15
add byte [ebx + eax], 0x4b
xor byte [ebx + eax], 0x69
add byte [ebx + eax], 0x5e
mov dword [esp - 0x10], esp
xor byte [ebx + eax], 0x67
mov dword [edi], ebx
call fcn.00490c60
add esp, 4
mov ecx, ecx
mov byte [edi + 4], 0x6c
xor byte [edi + 4], 0x52
xor byte [edi + 4], 0x4a
mov dword [esp - 0x38], esp
xor byte [edi + 4], 0x68
sub byte [edi + 4], 0x1b
mov eax, edi
pop edi
xchg ebx, ebx
pop esi
pop ebx
mov esp, ebp
mov edx, edx
pop ebp
ret 4