Function at 0x41a020
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x18], 0x18e31827
mov dword [esp + 0x1c], 0x18e418f9
mov dword [esp + 0x20], 0x180d18e2
mov eax, 0x4a48
mov ecx, 0xab1cb5b7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + eax*2 - 0x9478]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
lea esi, [edx + edx]
not esi
add esi, edx
add esi, 0x58e5adbf
mov edi, esi
and edi, 1
and esi, 0xfffe
and edx, 1
or edx, esi
xor edx, 1
lea edx, [edx + edi*2]
mov word [esp + eax*2 - 0x9478], dx
inc eax
dec ecx
cmp eax, 0x4a4e
jne 0x41a060
mov dword [esp + 0x30], 0xf8cdf8d0
mov dword [esp + 0x34], 0xf8cbf8ce
mov dword [esp + 0x38], 0xf712f706
mov dword [esp + 0x3c], 0xf8d3f711
mov dword [esp + 0x40], 0xf922f92f
mov dword [esp + 0x44], 0xf92ff923
mov dword [esp + 0x48], 0xf92af92c
mov dword [esp + 0x4c], 0xf933f935
mov dword [esp + 0x50], 0xf6c9f6f2
xor eax, eax
nop
nop
lea ecx, [eax + 0x70f8]
xor cx, word [esp + eax*2 + 0x30]
add ecx, 0x7840
mov word [esp + eax*2 + 0x30], cx
inc eax
cmp eax, 0x12
jne 0x41a0f0
movzx ecx, word [esp + 0x30]
lea eax, [esp + 0x15c]
test cx, cx
je 0x41a143
lea edx, [esp + 0x32]
mov esi, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a130
jmp 0x41a146
mov esi, dword [ebp + 0x10]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41a171
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a160
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x41a1a1
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a190
mov word [eax], 0
mov edi, dword [ebx]
mov dword [esp + 0x30], 0x5cd0520
mov word [esp + 0x34], 0x7e2c
mov eax, 0xf1fa
mov ecx, 0xe05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 - 0x1e3c4]
mov esi, edx
not esi
or esi, ecx
or edx, eax
and edx, esi
add edx, 0x7030
mov word [esp + eax*2 - 0x1e3c4], dx
inc eax
dec ecx
cmp eax, 0xf1fd
jne 0x41a1d0
movzx eax, byte [esp + 0x30]
test al, al
je 0x41a21b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a210
mov dword [esp + 0x10], edi
mov byte [edi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x150]
lea edx, [esp + 0x2c]
lea esi, [esp + 0x15c]
push eax
push ecx
push edx
push esi
call fcn.0040ad10
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x442580]
mov ecx, 0xf7d41967
xor ecx, dword [0x442588]
add eax, ecx
inc eax
jmp eax
jo 0x5f5259
and dword [edx + 0x56], edx
push edx
push esi
and ah, dl
push ebx
push edi
dec ecx
dec edi
fist dword [esp + esi*8]
inc eax
stosd dword es:[edi], eax
inc esi
stc
mov esp, 0x335d39cc
clc
adc al, 0x23
leave
dec edx
adc al, 0x70
and dword [edi + ecx*2 + 0x48db7ab3], eax
dec eax
push esp
and eax, 0x255450a8
adc byte [eax + esi*2], 0x21
jo 0x5f5285
or dword [edi - 0x4d], eax
arpl word [0x64a016f9], di
loop 0x5f5237
enter 0x144e, 0x70
and dword [eax], ecx
cli
je 0x5f5236
pop ss
adc ch, byte [ebp + 0x6f37ace7]
or al, 0x86
push ebx
sbb ah, byte [ecx]
sbb esp, edi
cld
jae 0x5f52a9
and eax, 0x517a5014
dec edi
stc
jge 0x5f52fe
adc cl, dh
adc byte gs:[eax], 0x6d
adc byte [eax], 0x6d
and dword [edx + 0x14], edx
xor esi, dword [edx - 0x16]
ret
leave
scasb al, byte es:[edi]
xchg esi, eax
wait
mov dword [edx + edi], eax
add al, 0x3a
push es
and byte [esi], ch
and edx, dword [eax]
jo 0x5f52d9
push edx
inc esi
and dword [eax + 0x73], edi
popfd
je case.0x41a25f.0
jge 0x5f52d3
jo 0x5f52e5
dec edx
cmp byte [ebx - 0xd], cl
push ss
pop esp
jg 0x5f5262
pushal
jmp 0x5f5294
and byte [ecx], ch
add al, 0x59
or al, 0x40
jmp 0x5f52c0
popfd
cmc
cmp dword cs:[ecx], edi
bound esp, qword [eax + 0x4e6a8b5c]
sub al, 0x54
sbb ah, byte [ecx]
cmc
cld
jae 0x5f5319
push edx
adc al, 0x50
js 0x5f52e7
dec ebp
stc
insd dword es:[edi], dx
mov al, 0x10
int1
outsb dx, byte gs:[esi]
adc byte [eax + 0x21], ch
and eax, 0x51703114
js 0x5f537f
cmp byte [esi + 0x21], 0xf9
pushfd
aaa
xor al, 0x33
fst dword [edx + ebx]
adc al, 0x1a
and dword [eax - 4], edi
jae case.0x41a25f.1
xchg esp, eax
adc al, 0x50
js 0x5f52ae
dec ebp
stc
insd dword es:[edi], dx
add dword [eax], edx
int1
mov dh, 0x10
insd dword es:[edi], dx
and dword [ecx + 0x14], ecx
xor dword [eax + 0x67], esi
sub edi, ecx
cmpsb byte [esi], byte es:[edi]
mov byte [esi + 0x281e1251], bl
jae 0x5f52ea
xchg esp, eax
jle 0x5f53b3
jo 0x5f52e7
pop ss
jo 0x5f5369
and eax, 0xcbe22934
popfd
cmp al, 5
dec ebp
xchg ebp, eax
xor al, 5
mov al, byte [0x52217001]
push ebp
and edx, esp
mov esi, 0xaba4f98c
push ecx
xor al, 0x33
and byte [0x701426c9], dl
adc al, 0x70
jo 0x5f538d
and dword [edx - 0x3f834cb7], esi
js 0x5f53c7
mov dl, 0x49
mov bl, 0x7c
sar byte [eax + 0x54], 0x25
and eax, 0x44255450
and eax, 0x25545025
inc esp
adc al, 0x70
and dword [ecx + eax*2 - 0x4d], ebp
aad 0xae
adc al, 0xfb
xchg esp, eax
or dword [ebx*2 + 0x739b2a33], ebp
and dword [edx - 0x466180ec], edx
std
push 0x1614a420
adc al, 0x7f
sahf
mov ecx, 0xa42068fd
adc al, 0x16
lahf
in eax, dx
mov dh, 0xfd
movsb byte es:[edi], byte [esi]
cmp edx, dword [edx]
aaa
xor ebx, dword [0x6738e8a9]
push es
and al, cl
xor dword [eax + esi*2], edx
and dword [ebx - 0x5e], esi
lodsd eax, dword [esi]
add eax, 0x8b35aba8
mov ebp, 0x8223ed5e
mov edi, dword [ebp - 0x7ddc12a2]
pop esi
in eax, dx
and eax, dword [edx - 0x10de68b4]
dec esp
xchg edi, eax
and edi, ebp
sub edx, edi
ret
or dword [eax], ecx
push es
jg 0x5f536a
pushal
cdq
in eax, dx
cmp dword [edi + 0x53], ecx
bound ecx, qword [ebx - 0x5c]
inc esp
cwde
and dl, byte [edx + 0x14]
jo 0x5f53dd
jno 0x5f53b5
xlatb
sub byte [eax - 0x5f8bcf30], ch
push cs
xor byte [ebp + esi + 0x25], dh
adc al, 0x70
popal
ret 0x30d7