Function at 0x405d51
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, 0xbe
arpl word [ebp + 8], dx
xor esi, 0x1feece0e
push esi
mov esi, 0x2f570e21
mov ecx, 0x504f1e9c
xor ecx, esi
pop edx
xor ecx, edx
add esp, 0xfffffffc
mov esi, esp
mov dword [esi], ecx
push 0x18d72e0d
mov esi, 0x3510ec9d
pop ecx
xor esi, ecx
mov ecx, 0x14588735
mov edi, 0x3e211f1d
xor edi, ecx
xor edi, esi
pop ebx
xor edi, ebx
mov ecx, 0
xor ecx, edi
mov ebx, 0
xor ebx, ecx
mov ecx, 0x18ec680a
mov esi, 0x18ec680b
xor esi, ecx
sub ebx, esi
mov eax, dword [ebx + 1]
push 0x2472c205
mov edi, 0x3ebd5b11
pop ecx
xor edi, ecx
mov ecx, 0x26fbe3e5
xor edi, ecx
xor edi, 0x99865d9
add esp, 0xfffffffc
mov ecx, esp
mov dword [ecx], edi
push 0x37794eaf
mov ebx, 0x3de042e0
pop ecx
xor ebx, ecx
mov edx, ebx
xor edx, 0xffffffff
and edx, 0x3f351367
and ebx, 0xc0caec98
or ebx, edx
pop esi
xor ebx, esi
xor ecx, ecx
add ecx, ebx
mov edi, 0xfffffffc
add esp, edi
mov dword [esp], ecx
mov esi, esp
push esi
pop edi
mov ebx, 0x40d94234
mov ecx, 0xbf26bdc8
xor ebx, ecx
add esp, ebx
mov dword [esp], edi
push 0x66dc6666
mov ecx, 0x4b14b1eb
pop esi
xor ecx, esi
push ecx
mov ecx, 0x2644464b
mov edx, 0xd015436
xor edx, ecx
pop ebx
xor edx, ebx
mov edi, 0x2cadfc8
mov esi, 0x4471a78
xor esi, edi
xor edx, esi
mov esi, 0
xor esi, edx
mov edi, 0xfffffffc
add esp, edi
mov dword [esp], esi
mov edx, 0x6106d120
mov edi, 0x14480842
xor edx, edi
mov esi, edx
xor esi, 0xffffffff
and esi, 0x7a254116
and edx, 0x85dabee9
or edx, esi
mov ecx, 0x21cb85c0
mov ebx, 0x2ea083b4
xor ebx, ecx
xor edx, ebx
mov ebx, 0xfffffffc
add esp, ebx
xor ecx, ecx
add ecx, esp
mov dword [ecx], edx
mov esi, 0x5c848158
mov edi, 0x190802
xor esi, edi
push esi
mov esi, 0x42185423
mov ebx, 0x1ec5cd79
xor ebx, esi
pop edx
xor ebx, edx
mov esi, 0x20214969
mov edx, 0x3bee3888
xor edx, esi
mov ecx, 0x18f1080
mov esi, 0x1a406161
xor ecx, esi
xor ecx, edx
xor ebx, ecx
mov edi, 4
sub esp, edi
mov edx, 0
xor edx, esp
mov dword [edx], ebx
call eax
pop ecx
mov edi, 0x5c3239ca
xor edi, 0x58a49b93
push edi
mov eax, 0x1013000
mov edi, 0x58348500
xor eax, edi
pop esi
xor eax, esi
push 0x56fb1e6e
mov esi, 0x5de7ded1
pop edi
xor esi, edi
push esi
push 0x78e06e5a
mov edx, 0x2e5fba99
pop esi
xor edx, esi
pop ecx
xor edx, ecx
xor edx, eax
mov ebx, 0x61aa8f24
xor ebx, 0x236493a1
push 0x94fe4d9
mov esi, 0x7748ed5e
pop ecx
xor esi, ecx
xor esi, ebx
mov edi, 0x2618da31
xor edi, 0x6eb11244
xor esi, edi
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0x74209171
and esi, 0x8bdf6e8e
or esi, ecx
mov ebx, 0x2deca396
mov eax, 0x75c6682a
xor eax, ebx
mov ebx, 0x2d9e51ab
xor eax, ebx
xor eax, 0x748e2ac9
mov ebx, 0x70716172
mov edi, 0x400bf2bb
xor edi, ebx
mov ebx, 0x4676008f
xor edi, ebx
xor edi, 0x7776af35
xor edi, eax
xor eax, eax
add eax, edx
mov ebx, 0
xor ebx, eax
mov ecx, ebx
add esp, 0xfffffffc
mov dword [esp], ecx
push 0xc87978a
mov eax, 0xc87978e
pop ebx
xor eax, ebx
sub esp, eax
xor ecx, ecx
add ecx, esp
mov dword [ecx], edi
xor edx, edx
mov dl, byte [esi]
add edi, edx
mov dl, byte [edi]
push 0x6f4d9e6e
mov eax, 0x2a51cedf
pop ebx
xor eax, ebx
push 0x567b09de
mov ecx, 0x1367596f
pop ebx
xor ecx, ebx
xor ecx, eax
xor ecx, edi
or ecx, 0
pop edi
mov byte [esi], dl
mov eax, 0x4739b73a
mov ebx, 0x3e1d5ea1
xor ebx, eax
mov ecx, 0xdc1f2d2
xor ecx, 0x74e51b48
xor ecx, ebx
sub esi, ecx
pop edx
mov eax, 0x779f4fa5
xor eax, 0x779f4fa5
mov ecx, 0x3d8421d
mov ebx, 0x3d8421c
xor ebx, ecx
xor eax, ebx
sub edx, eax
cmp edx, 0
jne 0x405f8a
push 0x54db2c7b
mov ecx, 0x53ae5252
pop edx
xor ecx, edx
mov ebx, 0x1bdc4a03
xor ecx, ebx
mov edx, ecx
mov esi, 0xffffffff
xor edx, esi
and edx, 0x1ce97cc8
and ecx, 0xe3168337
or ecx, edx
call ecx
pop edi
pop edi
ret