Function at 0x4050b0
Capabilities:
Encode data using xor

Disassembly:
je 0x1259928
lea edx, [esi + 0x18]
lea eax, [esi - 0x23346000]
invalid
adc al, 0x41
xor al, 0x31
mov ch, byte [ebp + 0x10]
mov edi, dword [ebx + 8]
mov eax, dword [esi + 8]
add edi, eax
mov eax, dword [ebx + 4]
jae 0x405049
mov dword [ebx - 0xd], edi
cmp ecx, eax
jbe 0x405084
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0xc]
push ebp
sal byte [esp + esi*2 + 0x4e], 0xe8
scasd eax, dword es:[edi]
push edx
add byte [eax], al
lea ecx, [esi + 0x18]
mov dword [esi], 0x1f0000
mov dword [esi + 0x10], ecx
mov ebx, dword [edx - 0x14b274f0]
mov dword [esi], esi
mov dword [ebx + 4], ebp
lea eax, [edi - 0x1c]
mov dword [edi + 0x34], eax
mov dword [esi - 0x33], eax
int 0x89
pop edi
sbb byte [ebx + 0x77890c5d], cl
invalid
int 0x89
pop edi
sbb byte [ebx + 0x77890c5d], cl
xor byte [ebx], dh
ja 0x4050e9
xor esi, dword [edi + 0x2c]
xor esi, esi
jp 0x4050ba
and byte [esi + ebx*8 - 0x76fbbf77], al
ja 0x4050da
mov ebx, 0x77891477
cmp byte [ecx + 0x4b3c3c77], cl
sbb al, 0x89
ja 0x4050fd
out 0x7d, al
mov bl, byte [edi + ebx]
jge 0x405066
sbb al, 0x1f
sub ah, byte [edx - 0x75]
push ebx
sbb bh, al
call fcn.00404910
cmp eax, esi
mov dword [0x50097410], edi
call fcn.0040a2d0
mov edi, ebp
adc byte [ebx - 0x3c7cfbb5], cl
add al, 0x8d
push edi
or byte [ebx], bh
into
mov dword [edi + 0x74], ebp
add edi, dword [edi]
ret
sbb edi, eax
mov dword [ebx + edi + 0xc2ba5c6], ebp
je 0x405148
push eax
call fcn.0040a340
aaa
inc ebp
or byte [ecx + 0x335e5f38], cl
pop edi
jecxz 0x405182
ret 0x10
mov eax, dword [ebp + 0x54]
adc ch, byte [edi + 0x5f]
pop esi
xor eax, eax
pop ebx
pop ebp
pop ebp
mov bl, 0x95
nop
nop
nop
nop
nop
nop
nop
nop
nop
jge 0x405199
invalid
invalid
inc ebp
invalid
call 0x67ecf840
popfd
les eax, [ebx + eax*4]
clc
call dword [esi + 0x19]
mov eax, dword [edi + 0x20]
cmp edi, ecx
je 0x4051e8
scasb al, byte es:[edi]
or al, 0x1b
rol byte [ebx - 0x3f96fb3c], 1
pop edi
add eax, 0x5de59e5b
adc eax, 0x458b000c
add cl, byte [ebx - 0x72aff3b3]
push ebp
loopne 0x40521b
push edx
push 0x405320
call fcn.004070d0
cmp eax, 0xffffffff
jne 0x4051f3
insb byte es:[edi], dx
inc edi
js 0x405203
ret
pop edi
clc
xor eax, eax
or al, 0x8b
fstp dword [ebp - 0x3e]
or al, 0
les eax, [ebp - 0x20]
mov byte [eax], 0
mov ecx, dword [ebp - 0x18]
dec edi
dec edx
adc byte [ebx], ch
ret 0x5589
adc byte [ebx - 0x5b87f740], al
add eax, edx
mov dword [ebp - 0xb5174f0], esp
cmp esi, ebx
jmp 0x405199
sbb byte [ebx - 0x637af3b9], cl
rol dword [esi], 0xe7
mov esp, 0x84a7
mov edx, dword [edi + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x24], edx
mov eax, dword [edi + 0xc4d8908]
dec ebx
push es
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov ebp, dword [ecx + 0x46]
test ecx, ecx
je 0x405250
cmp eax, edx
jbe 0x405250
mov dword [esi], ebx
mov ebx, esi
jmp 0x4052c3
cmp eax, 0x14
jae 0x40526d
ror byte [eax + ecx + 0x14], 1
test dword [edx], esi
mov dword [esi], ecx
jne 0x4052dc
cmp eax, dword [ebp + 0x47]
jbe 0x405267
mov dword [ebp + 0xc], eax
adc byte [edi + eax*4 + 0x14], dh
jmp 0x405275
mov ebx, ebx
adc al, 0x89
push cs
mov dword [edi + 0x14], esi
cmp edx, eax
mov eax, dword [0xebd02b04]
add ch, byte [ebp - 0x2e]
mov esi, dword [ebp - 8]
lodsb al, byte [esi]
div byte [ebp - 0x4f]
mov eax, dword [ebp - 0x28]
mov dword [ecx + 8], eax
mov dword [edi], eax
add dword [edi + 0xc], edi
test edi, edi
je 0x40529b
push edi
call 0x13fa340
inc edi
fisttp dword [esp + edx + 0x2630d78b]
inc eax
add byte [ebx + 0x501b8bc3], cl
call esi
add esp, 4
push ebp
invalid
sbb dword [ebx - 0x75], ebx
ljmp 0x4d8b
push ecx
hlt