Function at 0x41d8b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov dword [esp + 0x10], 0xa37ead89
mov dword [esp + 0x14], 0xa741a153
mov dword [esp + 0x18], 0xbb46a545
mov dword [esp + 0x1c], 0xbf4eb979
mov dword [esp + 0x20], 0xb376bd4c
mov dword [esp + 0x24], 0xb742b151
mov dword [esp + 0x28], 0x4b6fb555
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x4948
mov byte [esp + 0x30], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x20
ja 0x41d96e
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x10]
mov esi, ecx
and esi, 0x60bba66
xor ecx, 0x860bba66
lea esi, [ecx + esi*2]
lea ecx, [esi + edx]
and esi, edx
add esi, esi
sub ecx, esi
add cl, 0x36
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x21
jb 0x41d920
lea ebx, [esp + 0x10e]
lea edx, [esp + 0x10]
mov ecx, 7
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x12a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x7c]
push eax
push 0
push 0
push 0xe
push ebx
push 0
call dword [0x44b0a4]
mov edi, dword [esp + 0x7c]
test edi, edi
jns 0x41d9ba
mov eax, 0xffffffff
jmp 0x41d9bd
lea eax, [edi + edi]
push eax
call fcn.00436b20
add esp, 4
mov esi, eax
lea eax, [esp + 0x7c]
push eax
push edi
push esi
push 0xe
push ebx
push 0
call dword [0x44b0a4]
mov dword [esp + 0x10], 0x73226d30
mov dword [esp + 0x14], 0x77117111
mov dword [esp + 0x18], 0x7b1b751b
mov dword [esp + 0x1c], 0x7f1b7913
mov dword [esp + 0x20], 0x83827d0b
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x23
ja 0x41daa5
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edi, byte [esp + edx + 0x10]
lea edx, [ecx + edi]
add edx, 0x4c68c86e
add ecx, 0x4c68c86e
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
add cl, 0xfe
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp + 0xac]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0xac]
cmp ecx, 0x24
jb 0x41da40
lea edi, [esp + 0xfa]
lea ebx, [esp + 0x10]
mov edx, ebx
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 9
jns 0x41dadd
mov eax, 0xffffffff
jmp 0x41dae2
add eax, eax
add eax, 0x12
push eax
call fcn.00436b20
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x41db11
lea edx, [esi + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41db00
mov word [eax], 0
movzx ecx, word [esp + 0xfa]
test cx, cx
je 0x41db41
lea edx, [esp + 0xfc]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41db30
mov word [eax], 0
lea eax, [esp + 0xa8]
push eax
push edi
call fcn.0043bda0
add esp, 8
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x444af4]
mov ecx, 0x35dba7b5
xor ecx, dword [0x444afc]
add eax, ecx
inc eax
mov dword [esp + 0xa4], edi
jmp eax
mov dh, byte [edx]
pop ds
loop str.v2_a
add byte [esi + 0x750041e7], ch
cli
push ecx
outsb dx, byte [esi]
push edi
inc edi
aas
sahf
enter 0xe91, 0xffffffffffffffe1
mov bh, 0xca
inc esi
adc byte [esi + 0x89651f4], dl
aad 0x5d
mov ebp, 0x442bb01a
sbb dh, byte [eax - 0x4ae6bbd5]
dec ebp
int 0xa1
jb 0x4444bb
sbb dh, byte [eax - 0x4ae6bbd5]
dec ebp
int 0xa1
jb 0x4444bb
insd dword es:[edi], dx
mov ecx, 0x5435e7b5
mov dh, 0xc8
insd dword es:[edi], dx
mov bh, 7
or ebp, esi
mul byte [eax + edx*2 - 0x20]
push ss
sbb edi, dword [eax + ecx*4 + 0x7603261e]
jbe 0x4444f0
jbe 0x4444f0
xor al, byte [edi]
retf
add dh, bh
rol byte [ecx], cl
test al, 0xcd
inc ecx
add dh, bh
rol byte [ecx], cl
mov esi, 0x870041cd
add byte [esi - 0x78ffbe33], bh
into
inc ecx
add bh, dl
int 0x41
add byte [ebx], dl
rol byte [ecx], 1
adc edx, eax
inc ecx
add byte [ebx], dl
rol byte [ecx], 1
sbb al, dl
inc ecx
add byte [edi], bh
rol dword [ecx], 1
jecxz 0x4444af
inc ecx
add byte [ecx + edx*8 + 0x41], ch
add byte [eax - 0x2f], dl
inc ecx
add bl, ah
rol dword [ecx], 1
cli
rol dword [ecx], 1
or al, 0xd2
inc ecx
add byte [esi - 0x59ffbe2d], al
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
xor dl, dl
inc ecx
add byte [eax - 0x2e], al
inc ecx
add byte [edx - 0x2e], al
inc ecx
add byte [edx - 0x2e], al
inc ecx
add byte [edx - 0x2e], al
inc ecx
add byte [edx - 0x2e], al
inc ecx
add byte [ebx - 0x64ffbe2d], bl
rol dword [ecx], cl
mov al, 0xd3
inc ecx
add byte [edx - 0x43ffbe2d], dh
rol dword [ecx], cl
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
adc bl, 0x41
add byte [eax - 0x79ffbe2d], al
rol dword [ecx], cl
xchg bl, dl
inc ecx
add byte [esi - 0x79ffbe2d], al
rol dword [ecx], cl
pop ds
rol dword [ecx], cl
adc bl, dl
inc ecx
add byte [eax], dl
rol dword [ecx], cl
rol dword ss:[ecx], cl
rol dword ss:[ecx], cl
rol dword [ecx], cl
rol dword ss:[ecx], cl
push eax
rol dword [ecx], cl
adc bl, dl
inc ecx
add byte [eax], dl
rol dword [ecx], cl
adc bl, dl
inc ecx
add byte [eax], dl
rol dword [ecx], cl
adc bl, dl
inc ecx
add byte [eax], dl
rol dword [ecx], cl
xchg bl, dl
inc ecx
add bl, bl
rol dword [ecx], cl
loopne 0x444561
inc ecx
add dl, ah
rol dword [ecx], cl
loop 0x444569
inc ecx
add dl, ah
rol dword [ecx], cl
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
pop es
salc
inc ecx
add byte [esi], bl
salc
inc ecx
add byte [eax], dh
salc
inc ecx
add byte [edx], dh
salc
inc ecx
add byte [ebp - 0x2a], al
inc ecx
add al, al
xlatb
inc ecx
add dl, dh
salc
inc ecx
add dl, dh
salc
inc ecx
add dl, dh
salc
inc ecx
add dl, dh
salc
inc ecx
add byte [esi - 0x59ffbe28], ah
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
inc esi
xlatb
inc ecx
add byte [eax - 0x29], dl
inc ecx
add byte [edx - 0x29], dl
inc ecx
add byte [eax], ah
xlatb
inc ecx
add byte [eax], ah
xlatb
inc ecx
add byte [esi + 0x700041d8], ah
xlatb
inc ecx
add byte [eax - 0x29], dh
inc ecx
add byte [eax - 0x29], dh
inc ecx
add byte [eax - 0x29], dh
inc ecx
add byte [esi - 0x59ffbe28], ah
fadd dword [ecx]
pushfd
xlatb
inc ecx
add byte [edi + edx*8 - 0x2759ffbf], bl
inc ecx
add byte [esi - 0x59ffbe28], ah
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
push ds
salc
inc ecx
add byte [ecx - 0x76ffbe2e], cl
rol byte [ecx], cl
mov edx, edx
inc ecx
add dh, dh
rol dword [ecx], cl
not bl
inc ecx
add byte [esi - 0x32ffbe28], ah
rol byte [ecx], cl
xor eax, 0x700041d4
aam 0x41
add byte [eax - 0x2c], dh
inc ecx
add byte [eax - 0x2c], dh
inc ecx
add byte [eax - 0x2c], dh
inc ecx
add byte [esi - 0x2c], dh
inc ecx
add byte [eax - 0x77ffbe2c], ah
aam 0x41
add byte [eax - 0x5fffbe2c], ah
aam 0x41
add byte [edx - 0x65ffbe2c], bl
aam 0x41
add byte [edx - 0x65ffbe2c], bl
aam 0x41
add byte [edx - 0x59ffbe2c], bl
aam 0x41
add byte [eax - 0x4dffbe2c], dh
aam 0x41
add byte [eax], al
aad 0x41
add byte [eax], al
aad 0x41
add byte [eax], dl
aad 0x41
add byte [eax], ah
aam 0x41
add al, al
aam 0x41
add byte [eax], ah
aad 0x41
add byte [eax], ah
aad 0x41
and ch, dl
inc ecx
add ah, bh
aam 0x41
add ah, bh
aam 0x41
add byte [eax], ah
aam 0x41
add byte [esi - 0x59ffbe28], ah
fadd dword [ecx]
cmpsb byte [esi], byte es:[edi]
fadd dword [ecx]
int 0xd2
inc ecx
add byte [esi - 0x2e], cl
inc ecx
add byte [esi - 0x1bffbe28], ah
rol byte [ecx], cl
jo 0x4446a8
inc ecx
add byte [eax - 0x2e], dh
inc ecx
add byte [eax - 0x2e], dh
inc ecx
add byte [esi - 0x1bffbe28], ah
rol byte [ecx], cl
in al, 0xd2
inc ecx
add byte [ebx - 0x48ffbe2e], bl
rol byte [ecx], cl
invalid