Function at 0x405d60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push edi
push esi
push ebx
mov dword [ebp - 4], eax
mov eax, 0x13
cmp cl, 0
jne 0x405d5b
mov eax, dword [ebp + 0xc]
cmp eax, 2
jge 0x405d51
mov eax, 2
cmp eax, 0x12
jle 0x405d5b
mov eax, 0x12
mov dword [ebp + 0xc], eax
push eax
mov eax, 0xc2ae69ba
sub al, byte [ecx - 0x93a370e]
xor al, 0x52
push 0x763d9b73
mov ebx, 0x6849e192
pop edx
xor ebx, edx
pop esi
xor ebx, esi
mov ecx, 0x38384055
mov edi, 0x41410108
xor ecx, edi
mov edx, 0x79798175
xor ecx, edx
xor ebx, ecx
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], ebx
pop ecx
sub ecx, 0xffffff9e
mov eax, dword [ecx - 0x62]
mov ecx, 0x3c4c9a26
xor ecx, 0x3f77f7e5
mov edx, 0x7cf867d1
xor edx, 0x3dc94dc7
xor edx, ecx
mov esi, 0x9e15400
xor esi, 0x18958c4d
xor edx, esi
mov edi, 0x7933b61e
xor edx, edi
xor edx, 0x2a4d2986
mov edi, 0
xor edi, edx
mov ebx, edi
push ebx
mov edx, esp
add esp, 0xfffffffc
mov dword [esp], edx
pop ecx
mov esi, ecx
mov edi, esi
mov ebx, edi
push ebx
mov ecx, 0x4f020f4
mov ebx, 0x6fdc6206
xor ebx, ecx
mov esi, 0x19e189b0
mov edi, 0x72a302f1
xor edi, esi
xor edi, ebx
mov edx, 0x7c1f3c35
xor edx, 0x7c71f5c6
xor edi, edx
mov esi, 0
xor esi, edi
mov ecx, esi
push ecx
mov ecx, 0x4003180
mov edx, 0x18818208
xor ecx, edx
mov esi, ecx
xor esi, 0xffffffff
and esi, 0x187d3624
and ecx, 0xe782c9db
or ecx, esi
mov esi, ecx
push esi
mov edi, 0x8830002
mov ecx, 0x42105704
xor edi, ecx
mov ecx, 0x77c80175
xor edi, ecx
xor edi, 0x39a747df
pop ebx
xor edi, ebx
mov ecx, 0
xor ecx, edi
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], ecx
mov edi, 0x272a0dd7
mov ecx, 0x240a00d5
xor ecx, edi
mov edi, 0x29dcb887
mov esi, 0x7112188e
xor esi, edi
xor ecx, esi
mov edi, ecx
push edi
mov ecx, 0x1e6c612a
mov edx, 0x17406c2a
xor edx, ecx
mov esi, 0x4000900b
mov edi, 0x12822000
xor esi, edi
xor edx, esi
pop ebx
xor edx, ebx
mov esi, 4
sub esp, esi
xor ecx, ecx
add ecx, esp
mov dword [ecx], edx
call eax
pop eax
push 0x29f87338
mov esi, 0x491abab6
pop ecx
xor esi, ecx
push esi
mov edx, 0xc004a80
mov ecx, 0x22e9441
xor edx, ecx
pop edi
xor edx, edi
mov esi, edx
add esp, 0xfffffffc
mov dword [esp], esi
mov eax, 0x7a6661d9
xor eax, 0x7c6e75db
mov edx, 0x49566bbf
mov ecx, 0x21926bd7
xor ecx, edx
xor eax, ecx
pop ebx
xor eax, ebx
mov esi, 0x404040
mov edi, 0x10000200
xor esi, edi
mov ecx, 0x4a062008
mov ebx, 0x81086
xor ecx, ebx
xor esi, ecx
push esi
pop edi
mov ebx, 0xeacf5b05
xor edi, ebx
xor edi, 0x1530a4fa
and edi, 0x5a0e17db
and esi, 0xa5f1e824
or esi, edi
mov ecx, 0x59bd0a89
mov edx, 0x6b9cc4df
xor edx, ecx
mov ebx, 0x1094090e
mov ecx, 0x4022240
xor ebx, ecx
xor ebx, edx
mov ecx, 0x562416f5
xor ecx, 0x7022c60a
mov edi, 0x42618414
xor edi, 0x42903d33
xor edi, ecx
xor edi, ebx
push 0x5504dde1
mov ebx, 0x5504dde1
pop edx
xor ebx, edx
xor ebx, eax
mov edx, 4
sub esp, edx
mov dword [esp], ebx
xor ecx, ecx
add ecx, edi
mov edx, 0x3efe30c4
mov ebx, 0xc101cf38
xor edx, ebx
add esp, edx
mov dword [esp], ecx
xor eax, eax
mov al, byte [esi]
add edi, eax
mov al, byte [edi]
pop edi
mov byte [esi], al
dec esi
pop eax
mov ecx, 0x14db68a2
xor ecx, 0x3ba6c73d
push 0x4dcdde3b
mov ebx, 0x62b071a5
pop edx
xor ebx, edx
xor ebx, ecx
sub eax, ebx
mov ecx, eax
mov edx, 0x7c4496dc
mov ebx, 0x7c4496dc
xor ebx, edx
xor ebx, ecx
xor ebx, 0
jne 0x405f61
push 0x5ad6d8e5
mov ecx, 0x660a5b36
pop edx
xor ecx, edx
push ecx
push 0x7d7fbc12
mov edi, 0x193053ea
pop ecx
xor edi, ecx
pop eax
xor edi, eax
mov edx, edi
add esp, 0xfffffffc
mov dword [esp], edx
mov eax, 0x7ecc7455
xor eax, 0x4d09c9d
push eax
mov esi, 0x6049a274
xor esi, 0x42864766
pop ecx
xor esi, ecx
pop ebx
xor esi, ebx
call esi
pop ebx
pop ebx
ret