Function at 0x41c140
Capabilities:
Encode data using xor

Disassembly:
pop es
or byte [eax + ecx*2 + 0x65], dl
js 0x41c194
insd dword es:[edi], dx
outsd dx, dword [esi]
call 0xe0420c0a
inc esi
add byte [edi], bl
add byte [edi], al
dec eax
js 0x41c1a6
insd dword es:[edi], dx
outsd dx, dword [esi]
push ss
add al, bl
xor eax, dword [eax]
push esp
add al, byte [eax]
invalid
add byte [ecx], 0
add byte [eax], al
or al, byte [eax]
add eax, 0x72616843
jae 0x41c1ae
lds eax, [ecx]
xor byte [edx], al
add bh, bh
xor byte [edx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 0xff0000], al
add al, byte [eax]
push dword [eax]
add al, byte [eax]
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
inc dword [eax]
or eax, dword [eax]
or al, 0x53
jb 0x41c236
imul esp, dword [ebx + 0x65], 0x6f6c6f43
jb 0x41c1d5
lds eax, [ecx]
cmp byte [edx], al
add bh, bh
cmp byte [edx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
or al, 0
adc dword [ecx + 0x63], eax
je 0x41c250
jbe 0x41c24e
inc ebx
jne 0x41c25e
jae 0x41c25d
jb 0x41c233
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x41c201
lds eax, [ecx]
cmp al, 2
add bh, bh
cmp al, 2
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
or eax, 0x63411500
je 0x41c27c
jbe 0x41c27a
inc ebx
jne 0x41c28a
jae 0x41c289
jb 0x41c270
js 0x41c293
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x41c231
lds eax, [ecx]
inc eax
add al, byte [eax]
inc dword [eax + 2]
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
push cs
add byte [ebx], dl
dec ecx
outsb dx, byte [esi]
popal
arpl word [ecx + ebp*2 + 0x76], si
inc ebx
jne 0x41c2bc
jae 0x41c2bb
jb 0x41c291
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x41c25f
lds eax, [ecx]
inc esp
add al, byte [eax]
inc dword [edx + eax]
inc dword [ecx]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
lldt word [edi]
dec ecx
outsb dx, byte [esi]
popal
arpl word [ecx + ebp*2 + 0x76], si
inc ebx
jne 0x41c2ea
jae 0x41c2e9
jb 0x41c2d0
js 0x41c2f3
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x41c291
lds eax, [ecx]
and al, 2
add al, byte [eax]
jmp dword [edx + eax]
add bh, bh
and al, 2
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 0xd0d0ff], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
cmp bh, 0xd0
rol byte [eax], 1
adc byte [eax], al
push cs
inc esp
imul esp, dword [esi + 0x66], 0x6e657265
je 0x41c2ec
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x41c2ba
lds eax, [ecx]
xor al, 2
add bh, bh
xor al, 2
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc dword [eax], eax
or dword [ebp + 0x64], eax
imul esi, dword [ebx + eax*2 + 0x6f], 0xd8726f6c
jb 0x41c2aa
xor eax, dword [eax]
adc al, 2
add bh, bh
mov esp, 0x10041b9
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc al, byte [eax]
adc al, byte [ebx + 0x75]
jb 0x41c363
add byte [edx], dl
inc ebx
jne 0x41c361
jae 0x41c360
outsd dx, dword [esi]
jb 0x41c340
insd dword es:[edi], dx
outsd dx, dword [esi]
push eax
outsd dx, dword [esi]
jae 0x41c363
je 0x41c365
outsd dx, dword [esi]
outsb dx, byte [esi]
pop esp
xor byte [eax], al
sbb byte [edx], al
add bh, bh
int3
add byte [eax], al
add byte [eax + eax], dl
or al, 0x43
jne 0x41c3bb
jae 0x41c3ba
jb 0x41c38e
arpl word [ecx + ebp*2 + 0x76], si
fdiv dword gs:[ebx]
inc eax
add byte [edx + eax], al
add bh, bh
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc eax, 0x69460800
insb byte es:[edi], dx
push ebx
imul edi, dword [edx + 0x65], 0x4033d8
clc
add dword [eax], eax
inc dword [eax]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
push ss
add byte [eax], cl
dec ebp
insd dword es:[edi], dx
outsd dx, dword [esi]
push ebx
imul edi, dword [edx + 0x65], 0x4033d8
cmp byte [eax + 0x41], bl
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop ss
add byte [ecx], cl
dec ebp
imul ebp, dword [esi + 0x48], 0x68676965
push 0x41c52474
add byte [eax + 2], dh
je 0x41c3e1
lds eax, [ecx]
jo 0x41c3c4
add bh, bh
jo 0x41c3c8
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [eax], al
or cl, byte [edi + 0x6e]
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
popal
je 0x41c446
fdiv dword [ecx]
inc eax
add byte [eax + 2], bh
add bh, bh
js 0x41c3ed
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb dword [eax], eax
or byte [edi + 0x6e], cl
push ebx
arpl word [edx + 0x6f], si
insb byte es:[edi], dx
insb byte es:[edi], dx
pop esp
xor byte [eax], al
or al, 2
add bh, bh
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb al, byte [eax]
or cl, byte [ecx + 0x73]
push edx
popal
dec edi
outsb dx, byte [esi]
insb byte es:[edi], dx
jns 0x41c402
xor eax, dword [eax]
pop esp
add al, byte [eax]
inc dword [eax]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
sbb eax, dword [eax]
add al, 0x52
outsd dx, dword [esi]
ja 0x41c4bb
pop esp
xor byte [eax], al
add al, byte [bx + si]
jmp dword [edi + 2]
push eax
outsd dx, dword [esi]
jae 0x41c528
je 0x41c52a
outsd dx, dword [esi]
outsb dx, byte [esi]
inc ebx
push 0x65676e61
nop
nop
nop
or byte [eax], al
add byte [edx], al
or byte [esi], al
push ebx
outsb dx, byte gs:[esi]
jb 0x41c53c
push esp
dec edi
bound ebp, qword [edx + 0x65]
arpl word [eax + eax + 8], si
add byte [eax], cl
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
popal
je 0x41c5ab
add al, 0x62
outsd dx, dword [esi]
outsd dx, dword [esi]
insb byte es:[edi], dx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop
clc
add dword [eax], eax
add byte [ebx], al
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [edi + 0x4c000000], dh
add byte [eax + eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], cl
add byte [eax], al
add byte [edx], cl
add byte [eax], al
add byte [esi + edx + 0x47], ah
add byte [ebx], al
add byte [eax], ah
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x41c5fb
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x41c5c7
cmp dl, byte [ebx + eax*2 + 0x75]
jae 0x41c607
outsd dx, dword [esi]
insd dword es:[edi], dx
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x41c60c
outsd dx, dword [esi]
insb byte es:[edi], dx
add byte [eax], al
add byte [eax], al
fadd dword [eax + 0x40]
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
sub dword [0x4b7354], 1
jb 0x41c5c6
pop ebp
ret
pop ebp
ret
pop es
add byte [esi - 0x39], ah
inc ebp
call 0xcbccc60d
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00408b78
add dword [ebp - 0xc], 0xf
mov edx, dword [ebp - 0x28]
mov dword fs:[0], edx
mov eax, dword [ebp - 4]
cmp byte [ebp - 0x29], 0
je 0x41c62b
invalid
call fcn.004a1b8d
pop ebx
mov esp, ebp
pop ebp
ret