Function at 0x405d72
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, 0x17ba270f
mov ebx, 0xf2815d26
js 0x405d46
lodsb al, byte [esi]
sbb byte [edx - 0x45], dl
add byte [eax], al
and byte [esi + edi*4 + 0x11], ch
xchg byte [ebx + 3], dl
xor ebx, esi
pop ecx
xor ebx, ecx
mov esi, 0
xor esi, ebx
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0xffffffff
and esi, 0
or esi, ecx
and esi, 0x2ab92716
and ebx, 0xd546d8e9
or ebx, esi
mov esi, ebx
xor edi, edi
add edi, esi
sub edi, 0xffffffb8
mov eax, dword [edi - 0x48]
push 0x643425de
mov esi, 0x56cbc4ee
pop ebx
xor esi, ebx
mov edx, 0x91000c2
mov edi, 0x2002652d
xor edx, edi
xor edx, esi
mov esi, 0x328d0128
xor esi, 0x296085f7
xor edx, esi
mov ebx, edx
mov edi, ebx
add esp, 0xfffffffc
mov dword [esp], edi
mov edx, esp
push edx
pop ecx
mov esi, 0x4033db0e
mov edx, 0xbfcc24f2
xor edx, esi
add esp, edx
mov dword [esp], ecx
mov ebx, 0x284e0649
xor ebx, 0x284e0649
push 0x1fd1a6f7
mov edx, 0x1fd1a6f7
pop esi
xor edx, esi
xor ebx, edx
mov ecx, 0x48001a
mov edx, 0x21245020
xor ecx, edx
mov edx, 0x216c507a
xor ecx, edx
xor ebx, ecx
mov esi, ebx
mov edx, esi
mov esi, 4
sub esp, esi
mov dword [esp], edx
mov ebx, 0x422
mov edi, 0x1380004
xor ebx, edi
push 0x46e74582
mov ecx, 0x24625d0b
pop edi
xor ecx, edi
xor ebx, ecx
mov edi, ebx
push edi
push 0x386d8236
mov edx, 0x3dd5af57
pop ebx
xor edx, ebx
mov ebx, 0x6605afce
xor edx, ebx
pop esi
xor edx, esi
mov edi, 4
sub esp, edi
xor ebx, ebx
add ebx, esp
mov dword [ebx], edx
mov ecx, 0x1966a3e2
xor ecx, 0x5946a3bb
mov edx, 0x5bfb5fe5
mov edi, 0x4bbfcec5
xor edi, edx
xor ecx, edi
mov edi, 0x7d75160b
xor edi, 0x2d519772
xor ecx, edi
mov edi, ecx
mov ebx, edi
add esp, 0xfffffffc
mov dword [esp], ebx
call eax
pop ecx
mov eax, 0x240400
mov ebx, 0x120a80
xor eax, ebx
mov esi, 0x9004000
mov edi, 0
xor esi, edi
xor eax, esi
mov edi, eax
push edi
mov eax, 0x1f16e6f0
mov ecx, 0x1604ab74
xor ecx, eax
mov edi, 0x221d85bc
mov esi, 0x2239859d
xor esi, edi
xor ecx, esi
pop edx
xor ecx, edx
mov edi, 0x6314398a
xor edi, 0x6314798a
mov esi, 0x6c9a98a8
mov edx, 0x6cda99a8
xor edx, esi
xor edi, edx
mov eax, 0x11
mov edx, 0x800
xor eax, edx
mov ebx, 0x7ba74044
xor ebx, 0x7ba74200
xor eax, ebx
xor edi, eax
push 0x34d0adb6
mov eax, 0x7e396f7b
pop ebx
xor eax, ebx
push eax
push 0x462dc496
mov edx, 0x3271959b
pop eax
xor edx, eax
pop esi
xor edx, esi
mov esi, 0x310e3998
mov eax, 0xffb26ff
xor eax, esi
xor edx, eax
mov eax, ecx
mov ebx, 0x64998e73
xor ebx, 0x64998e77
sub esp, ebx
mov dword [esp], eax
mov esi, 0xf914e88
mov eax, 0xf06eb174
xor esi, eax
add esp, esi
mov esi, 0x250821ff
mov ebx, 0x250821ff
xor ebx, esi
xor ebx, esp
mov dword [ebx], edx
xor ecx, ecx
mov cl, byte [edi]
add edx, ecx
mov cl, byte [edx]
mov ebx, 0x6705f2f9
xor ebx, 0x8788627e
push ebx
push 0x359e1d4a
mov eax, 0x18ca7221
pop ebx
xor eax, ebx
pop esi
xor eax, esi
push 0x53adb84d
mov esi, 0x53adb84d
pop ebx
xor esi, ebx
xor esi, edx
add esi, edx
je 0x405f57
pop edx
mov byte [edi], cl
push 0x98be43a
mov eax, 0x98be43a
pop ebx
xor eax, ebx
mov esi, 1
mov ebx, 0
xor esi, ebx
xor eax, esi
sub edi, eax
pop ecx
mov ebx, 0x13fa49fe
xor ebx, 0xb5bfa941
push ebx
mov esi, 0x70a053e9
xor esi, 0x291a4ca9
pop eax
xor esi, eax
add ecx, esi
mov esi, ecx
mov ebx, esi
mov esi, ebx
add esp, 0xfffffffc
mov dword [esp], esi
pop eax
or eax, eax
jne 0x405f57
mov edi, 0x5822
mov eax, 0x50148014
xor edi, eax
mov eax, 0x2c8784ea
xor edi, eax
xor edi, 0x6db3c28f
xor edx, edx
add edx, edi
mov eax, edx
xor eax, 0xffffffff
and eax, 0xffffffff
and edx, 0
or edx, eax
and edx, 0x1160d662
and edi, 0xee9f299d
or edi, edx
call edi
pop esi
pop esi
ret