Function at 0x4011c8
Capabilities:
Encode data using xor

Disassembly:
sub esi, 0x41
jmp 0x4011f1
pop esi
jmp 0x40119e
cmp dword [esi], 0
stc
jb 0x4013c2
inc edi
lea esi, [esi]
cld
ficomp dword [esi + 0x6b]
cmpsb byte [esi], byte es:[edi]
inc esp
sub al, 0x1b
mov esi, esp
aas
mov esp, 0xfbceb159
push ds
and al, 0x72
pop edx
pop ebx
xchg edi, eax
ficomp dword [esi]
pop ebx
cld
shr dword [eax - 0x3e], 0x31
sbb eax, 0x850f69a2
mov dl, 1
add byte [eax], al
jne 0x4013d7
stc
jmp 0x401298
sub dword [ecx], 1
clc
jae 0x40121f
mov edx, 0x7c5abe0f
aaa
retf
call 0x40141f
jmp 0x4012c9
push esi
pop ebx
jb 0x40127b
push ebx
and ebp, dword [ebx]
sub al, 0x92
adc ch, byte [eax - 0x639bf0f0]
mov esp, 0xc66da5b6
pop edx
mov ah, 0x93
jmp 0x403c81
pop edi
pop ebx
pop eax
pop ecx
pop esi
pop edx
clc
jmp 0x4012b3
stc
adc eax, 3
jmp 0x401364
mov ss, word [edx]
aam 0x24
fistp word [eax - 0x21]
mov dword [0x48ffcbb], eax
mov esi, edi
xor dword [ebp - 0x71], 0x1b
fld dword [ecx + 0xb4de028]
xor ch, cl
invalid
sub dword [eax], 0x320b4de0
jmp 0x4012f0
jne 0x40131f
jae 0x401389
or byte [ebp - 0x2c], bh
jg 0x4013a8
push esp
das
or eax, 0xd45e4215
add eax, 0x449052e7
or al, byte [ebx + 0x3530ad6a]
daa
cmp al, 0x6d
cli
mov al, byte [0xf84a7bba]
dec edx
clc
jae 0x40133a
jb 0x40130b
or dword [ebp - 0xa], ebp
sub dl, byte [ebp - 0xf]
je 0x401352
std
cli
xchg ebx, eax
or dword [ebx], edx
and eax, 0xb36fc314
sar ch, 0x49
rcr dword [edi + 0x6b1d07ee], 1
sub esi, 0xfffffff8
jmp 0x401248
adc eax, ebx
mov dh, ch
or byte [eax - 0x2ebe672], cl
test al, 0xa2
push esi
pop ecx
jb 0x4013e8
loop 0x4013ff
pop esp
mov cl, 0x75
ror dword [edi], cl
test byte [ecx], al
invalid
je 0x4012c9
jb 0x4013b4
mov eax, 0xa98d4de0
jo 0x40138c
cmp bl, byte [ebx]
mov eax, dword [esi]
jmp 0x40140f
sub esi, 0xfffffffc
jmp 0x4013d7
push dword [esi + 4]
pop edx
jmp 0x40131f
invalid
add eax, esi
jmp 0x4013f9
loopne 0x403c57
xchg esi, eax
sub bh, byte [ecx]
ror dword [edx], cl
test al, 0xb
movsb byte es:[edi], byte [esi]
jne 0x403c4e
fild word [ebx + 0x4e20d15b]
or cl, byte [eax + 0x14]
mov esi, 0x466b324b
xchg ecx, eax
xor dword [ebp + 0x70], edx
mov gs, word [edi + 0x30]
call 0xc2206e79
and al, 0x88
enter 0xdb1, 0x32
loopne 0x403c08
retf
aas
bnd retf
mov bh, 0xd6
ret 0x882f
mov dword [0x4d4a1e96], eax
je 0x403caa
push edx
mov cs, word [ebx]
lcall 0xef44, 0x324b9ed4
or esi, dword [edx]
loopne 0x403ce3
pop ebx
xchg esi, eax
imul esi, dword [ebx + 0xb], 0x8e4de032
push ds
cmp byte [ecx - 0x4c96769f], ah
xor ebp, esi
xchg ebp, eax
jnp 0x403d1e
loopne 0x403c2e
fnstsw word [esp + esi*4 + 0x7a9e20d7]
mov cs, word [ebx]
mov ebp, 0x31eccfa8
loopne 0x403d0b
or edi, dword [ebx + 0x72a5b5ed]
loopne 0x403cd4
in eax, dx
cmp ah, bl
pop ss
xchg ebp, eax
aas
inc esp
call 0x36e16f1d
sbb al, 0xd5
inc eax
call 0x44536f25
bound ebx, qword [edx]
mov bl, 0x4f
or esi, dword [edx]
cmp ebx, edx
retf
cmpsd dword [esi], dword es:[edi]
call 0x905a64a0
dec esi
or esi, dword [edx]
cmp edi, edx
sbb dl, byte [eax + 0x39320b4e]
xlatb
sub byte [esi], 0xc8
cmpsd dword [esi], dword es:[edi]
sbb al, 0x32
enter 0x1ca7, 0x32
loopne 0x403d42
and dword [esi + 0x50], esi
mov cs, word [ebx]
aad 0x34
in eax, dx
dec ebx
xor cl, al
sbb esi, dword gs:[edx]
loopne 0x403cf6
dec ebx
int3
in eax, dx
dec ebp
or ebx, dword [edx]
loop 0x403d6c
or esi, dword [edx]
enter 0x156d, 0x32
loopne 0x403cf0
add byte [edx], 0x6d
xchg ebx, eax
scasd eax, dword es:[edi]
sbb bh, 0x63
dec ebx
mov byte [0xc5f34e20], al
in al, dx
dec ebp
or edi, dword [ebx + 0x7801ea25]
mov al, 0x4f
jg 0x403d6c
out dx, eax
add al, 0x51
push es
retf
popal
xor ebp, esi
mov dword [ebx + 0x72], edi
loopne 0x403ce7
aas
mov eax, 0x25bc0b4d
out dx, al
pop ebx
sbb ch, ch
push edi
or esi, dword [edx]
imul edx, dword [ebx - 0x27174209], 0x14
mov ebx, 0x835be62d
enter 0x161f, 0x32
loopne 0x403d10
cmc
imul esi, dword [ebx - 0x19aace0d], 0xfffffff3
xor ecx, ebp
dec ebp
or esi, dword [ebp + 0x72a5961d]
loopne 0x403dcc
xor byte [edi], 0xc8
xchg ebp, eax
pop ds
xor ah, al
dec esp
adc byte [esi - 0x1c], 0x35
add dword [esi - 0x20], 0x4d
jae 0x403dc1
loopne 0x403ddf
or esi, dword [ecx]
cmc
sbb eax, 0xa6e072a1
cmc
arpl word [ebx + 0x4e20cc53], cx
or al, 0xa7
in eax, 0x35
inc esi
loopne 0x403df7
or ah, byte [edi - 0x7b0cadfc]
hlt
sbb dword [ebx - 0x34], 0x20
dec esi
or ah, byte [edi + 0x35f35604]
loopne 0x403e1b
or ecx, dword [ebx - 0x5170eec7]
add al, 0x52
jmp 0x403d81
xor ah, al
dec ebp
nop
cmp ebx, eax
cmp ebx, eax
and dword [ebx + 0x24], ebp
jb 0x403dfe
cmpsb byte [esi], byte es:[edi]
invalid
cmp ebx, eax
jmp 0x6251de64
bound edi, qword [ebp + 0x6d137254]
adc eax, 0xe072a132
les edx, [esi]
mov al, cl
ror byte [edi], 0x32
loopne 0x403de4
retf
xor edi, dword [esi]
rcl ecx, 1
inc ecx
arpl word [esp + edi*8], si
mov byte [edx + 0x4e], cl
or ch, byte [eax + 0x30]
in eax, dx
dec ebx
xor bl, bh
arpl word [edi], di
mov byte [0xf5694e20], al
lodsb al, byte [esi]
sbb bl, al
invalid