Function at 0x405d63
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, 0xb900270f
adc al, 0
and esp, dword [0x9989bf]
sbb byte [ecx], dh
stc
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x3d6398dd
and ecx, 0xc29c6722
or ecx, edx
push 0x46d96e4d
mov esi, 0x6ecd6567
pop edi
xor esi, edi
push esi
push 0x1624f36c
mov ebx, 0x3e30286e
pop esi
xor ebx, esi
pop edx
xor ebx, edx
xor ecx, ebx
mov edx, 0x14052811
mov ebx, 0x14052811
xor ebx, edx
xor ebx, ecx
sub ebx, 0xffffffbb
mov eax, dword [ebx - 0x45]
mov edx, 0xbc7d89e
xor edx, 0x53dc102c
push edx
mov edx, 0x72578e70
mov esi, 0x3d69e6fd
xor esi, edx
pop ecx
xor esi, ecx
mov edx, esi
add esp, 0xfffffffc
mov dword [esp], edx
push 0x1ad4d7f8
mov edi, 0x1df077fd
pop edx
xor edi, edx
mov ecx, 0x484315c3
xor ecx, 0x584215f9
xor edi, ecx
pop ebx
xor edi, ebx
mov ecx, 4
sub esp, ecx
mov ecx, esp
mov esi, ecx
mov dword [esi], edi
xor ebx, ebx
add ebx, esp
mov edx, 4
mov ecx, 0
xor edx, ecx
sub esp, edx
mov dword [esp], ebx
mov edi, 0x6ff42973
xor edi, 0x63d1a3d1
push edi
push 0x246236b2
mov ebx, 0x292a89ba
pop edi
xor ebx, edi
pop esi
xor ebx, esi
mov edi, ebx
add esp, 0xfffffffc
mov dword [esp], edi
mov ebx, 0x5e049e6d
mov edx, 0xf6eeaf2
xor edx, ebx
mov ebx, 0x50074175
xor edx, ebx
pop ecx
xor edx, ecx
mov esi, 0
xor esi, edx
mov ebx, 4
sub esp, ebx
mov dword [esp], esi
mov edi, 0x67d57c7d
mov edx, 0x67d5fc7d
xor edx, edi
push 0xcf48dd3
mov ecx, 0xcf49dd3
pop esi
xor ecx, esi
xor edx, ecx
mov ecx, 0x2f0f3614
xor ecx, 0x57c56486
push ecx
mov ecx, 0x1005a50
mov ebx, 0x79ca0cc2
xor ebx, ecx
pop esi
xor ebx, esi
xor edx, ebx
xor esi, esi
add esi, edx
mov ecx, 0xfffffffc
add esp, ecx
mov dword [esp], esi
push 0x4ecd11c5
mov ebx, 0x63ce0c07
pop edx
xor ebx, edx
mov edx, 0x505b1834
xor ebx, edx
xor ebx, 0x7d5815f6
mov ecx, 0x5cc6f1c3
xor ecx, 0x5c86f1c3
mov esi, 0x640292c2
mov edx, 0x640292c2
xor edx, esi
xor ecx, edx
xor ebx, ecx
mov edi, 0
xor edi, ebx
add esp, 0xfffffffc
mov dword [esp], edi
call eax
pop esi
push 0x8602af6
mov ebx, 0x581fd549
pop esi
xor ebx, esi
push ebx
mov ebx, 0x24dbb331
mov ecx, 0x74a44d8a
xor ecx, ebx
pop eax
xor ecx, eax
mov ebx, 0x2d4a3ec5
xor ebx, 0x76eda9ff
mov edx, 0x10a08419
mov esi, 0x4b071102
xor edx, esi
xor edx, ebx
xor ecx, edx
push 0x1ad53aba
mov edi, 0x1ad41672
pop esi
xor edi, esi
mov eax, 0x5d9b6b3d
xor eax, 0xddbba2f
xor edi, eax
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], edi
push 0x4194fea1
mov ebx, 0x712ba00a
pop edi
xor ebx, edi
mov esi, 0x60bee859
xor ebx, esi
pop edx
xor ebx, edx
mov edx, 0x4b500833
mov eax, 0x7c921cfb
xor eax, edx
mov edx, 0x57dd1db1
mov esi, 0x601f8969
xor esi, edx
xor esi, eax
mov eax, 0x5f0efb5f
mov edi, 0x1b77033b
xor edi, eax
mov edx, edi
xor edx, 0xffffffff
and edx, 0x4439f4c4
and edi, 0xbbc60b3b
or edi, edx
xor esi, edi
mov eax, 0x4f4cf29
xor eax, 0xfb0b30d5
add esp, eax
mov eax, esp
mov edi, eax
mov eax, edi
mov edx, eax
mov dword [edx], ecx
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], esi
pop eax
xor edi, edi
add edi, eax
mov edx, 0xfffffffc
add esp, edx
mov dword [esp], edi
xor ecx, ecx
mov cl, byte [ebx]
add esi, ecx
mov cl, byte [esi]
pop esi
mov byte [ebx], cl
push 0x32117012
mov edx, 0x7184f11d
pop eax
xor edx, eax
mov edi, 0x58827df0
xor edi, 0xe4e80300
xor edx, edi
add ebx, edx
pop ecx
push 0x6ca2ac8c
mov edx, 0x6ca2ac8c
pop eax
xor edx, eax
mov edi, 1
mov eax, 0
xor edi, eax
xor edx, edi
sub ecx, edx
cmp ecx, 0
jne 0x405f9f
mov ecx, 0x7e5117e6
mov ebx, 0xadc45aa
xor ebx, ecx
mov ecx, 0x6e29a7b
xor ebx, ecx
xor ebx, 0x5e20b5d9
push 0x70725a58
mov eax, 0x1fbc000d
pop ecx
xor eax, ecx
xor ebx, eax
mov ecx, ebx
xor ecx, 0xffffffff
and ecx, 0x43c16fbf
and ebx, 0xbc3e9040
or ebx, ecx
call ebx
pop eax
pop eax
ret