Function at 0x41f567
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x41f692
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.0041ea2b
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xcd29e4
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x41f606
call 0xd05588
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x41f616
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x41fb2f
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x41f631
call 0xd05549
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x41fa27
test ebx, ebx
je 0x41fa08
test ebx, ebx
ja 0x41f9a5
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xcd2c61
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x41f997
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x420046
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x41f6ae
call 0xcd29cb
jmp 0x41f6e6
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x41f6cd
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x41fc16
mov dword [ebp + 0x10], ecx
jmp 0x41f6e6
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x41f6e3
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x41f6d7
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x41f6f7
mov esi, dword [ebx + 8]
jmp 0x41f70c
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x41f706
mov esi, eax
jmp 0x41f70c
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x41ff66
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x41f724
mov ecx, edi
jmp 0x41f741
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x41ff5e
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x41ff56
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x41f75f
mov dword [eax + 8], edi
jmp 0x41f761
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x41fc3d
push ebx
call 0xcd125c
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x41f799
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp - 0x60]
call 0xcd125c
pop ecx
jmp 0x41f680
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x41f9b5
mov ebx, dword [ebx + 4]
jmp 0x41f9b8
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x41f9c8
mov edx, dword [edx + 4]
jmp 0x41f9cb
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xcd2cab
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x41f9fc
mov eax, dword [eax + 4]
jmp 0x41f9ff
add eax, 4
mov byte [eax + ecx], 0
jmp 0x41f64c
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x41fa19
mov eax, dword [ebp - 0x7c]
jmp 0x41fa1c
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x41f644
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0xac], ebx
mov ecx, ebx
lea eax, [ebp - 0x80]
or ecx, 0xf
cmp ecx, 0xfffffffe
mov dword [ebp - 0x1d000098], eax
bsr ebx, dword [edx]
jl 0x41fa27
push ebx
jae 0x41fa73
add bh, byte [eax]
mov ah, 0x3c
js 0x41faca
aaa
call 0x8b40dd22
adc bl, byte [esi + edx + 0x6c]
xchg esp, eax
lodsb al, byte [esi]
mov bl, 0xec
dec edx
enter 0x7c56, 0x58
and al, 0x36
mov edi, 0xeced3872
inc esp
sub dh, cl
out 0x21, eax
cmp al, 0xd7
adc al, 0x9a
scasb al, byte es:[edi]
jne 0x41fa50
mov gs, word [ebx]
iretd
pop esi
push esi
and ebp, dword [0x8dd180ab]
arpl word [edi - 0xa], si
int1
mov eax, dword [0x65cc914b]
push edi
sub esi, 0x1f713e63
push ebp
int3
sbb al, 0x8e
loop 0x41faaa
xor eax, 0xc38be058
invalid
add edi, dword [edi - 0x54682872]
dec ebx
inc edx
push ebx
sar byte [ebp + ecx*8 - 0x3c4dce3a], 0xf
in eax, 0x44
or al, 0x8c
fldenv [edx - 0x32]
sbb dl, dh
add bl, dh
out dx, al
rol edx, 1
cmpsb byte [esi], byte es:[edi]
xchg edi, eax
cmpsb byte [esi], byte es:[edi]
invalid
jge 0x41fbe9
invalid
mov bl, 0x89
dec edi
push 0xffffffffffffffdf
jb 0x41fbec
aas
pushfd
test dword [ebx + esi*8 + 0x7d], ecx
arpl word [ecx + 0x5daafa19], di
loope 0x41fc32
cmp eax, 0x7ec37fb
sti
aaa
in al, dx
pop es
sbb al, 0xc4
std
insb byte es:[edi], dx
cmp eax, 0x4dba54aa
xor esi, dword [edx + eax*2]
xchg byte [esi - 0x7ddc7574], al
jp 0x41fbc4
invalid
lodsd eax, dword [esi]
cmp dword [ebp - 0x2621d58], edx
in eax, dx
xchg ebp, eax
adc eax, 0x686a1be1
test byte [esi], bl
and ecx, dword [ecx + 0x60]
insd dword es:[edi], dx
and dword [ebx + 0x58], eax
sub dl, dh
jl 0x41fc04
test dh, dl
salc
lahf
jne 0x41fc52
mov byte [0x4bcd928a], al
jbe 0x41fbff
in al, dx
and dword [esi], edi
push eax
loop 0x41fc51
sub dword [ebx], ebx
sub eax, 0xa5873ce5
rol byte [edx], cl
xchg al, cl
xchg edx, eax
jb 0x41fc95
invalid
std
popfd
aaa
sub dh, ch
sub al, 0
adc edi, ecx
pop ecx
movsb byte es:[edi], byte [esi]
nop
mov dword [0x3607126b], eax
add bl, byte [ecx]
dec ebp
add eax, 0x134ee639
test al, 0xe8
daa
xor eax, 0xfbfe52f7
jge 0x41fc6e
in eax, dx
pop edx
jmp 0xdda4090e
mov cl, 0xf7
fstp qword [ebx]
loopne 0x41fcb3
lahf
lodsd eax, dword [esi]
les ebp, gs:[edi]
das
mov dword [edx + edx*4 - 0x517d2e76], esi
push ebp
add eax, 0x3c32e81c
inc edi
dec ebx
lodsd eax, dword [esi]
lodsd eax, dword [esi]
std
jle 0x41fcdc
test al, 0x9d
or ah, 0x67
mov ebp, 0xba035b55
int1
or al, 0xa9
sbb esi, dword [edx - 0x11]
jo 0x41fc51
sar dword [ebx + edi*8 + 0x40], cl
cli
insb byte es:[edi], dx
mov ebx, 0x4356bf65
scasd eax, dword es:[edi]
ret
outsb dx, byte [esi]
or byte [edx + 0x4e5a5568], 0x12
leave
mov ebp, 0xc00a626d
mov byte [0x51661a5c], al
mov esi, 0x4d5c8417
and ch, dh
inc eax
rcr ah, 1
outsb dx, byte [esi]
xchg ecx, eax
fdivr qword [edx]
in al, dx
mov ecx, 0xc76c0303
imul esi, dword [ebp - 0x2d], 0xffffffd7
cmpsb byte [esi], byte es:[edi]
inc ecx
mov esp, 0x4cd54909
popfd
ret
cmp byte [ebx + 0x42], 0xf4
or al, 0xda
out dx, eax
add al, 0x46
ret
cmp byte [esp + edx*8], 0xf9
outsd dx, dword [esi]
cmp dword [esi + edx*4 - 0x5a3b66d9], edi
cmc
out 0x58, al
push 0x13
adc bh, byte [ebx + esi*8 + 0x64]
mov dword [0xc592497c], eax
xchg esi, eax
daa
cdq
les esp, [ebp + 0x6a58e6f5]
adc edx, dword [edx]
jl 0x41fe98
mov dword fs:[0xc592497c], eax
sbb eax, 0x7c376e12
iretd
adc bl, byte [ecx]
jl 0x41fece
je 0x41fee4
push edx
jle 0x41fe91
sub esp, ebx
je 0x41fea1
sar byte [ebx - 0x30], cl
jnp 0x41fea1
dec edi
adc cl, byte [ebx + esi*8 + 0x7bd6688c]
scasb al, byte es:[edi]
jl 0x41fe7a
sub byte [edi - 0x36], 0x7c
pop edx
mov ss, word [ebp - 0x3380dcb3]
and edi, dword [edi - 0x34]
lodsb al, byte [esi]
pop ss
jle 0x41ff43
jecxz 0x41ff2a
out 0xab, eax
pop es
movsb byte es:[edi], byte [esi]
leave
xchg esi, eax
pop esp
ja 0x41fea1
bound esi, qword [edx - 0x249c3556]
lea edi, [ecx + 0x4fd1f1a3]
loope 0x41feda
arpl word [ecx + 0x53e27df3], cx
mov ebx, esi
jge 0x41feeb
loop 0x41ff5d
push ebx
or eax, 0x71b972d4
push eax
sbb ah, al
sub bl, byte [edi]
ja 0x41fec2
mov bh, dh
cdq
sbb eax, 0x717fcdb3
js 0x41ff05
salc
mov dh, 0xe2
push es
jae 0x41ff4a
mov cl, 0x5e
pop edx
inc esp
cmp esp, dword [eax + 0x2a]
xchg esp, eax
push edx
push ds
pop esi
test byte [ecx + 0x53], bh
sal dword [edi], cl
xchg ebp, eax
or eax, 0x5c48d8f4
push ebp
cmc
mov ecx, 0xca10db6b
adc dl, cl
imul eax, dword [edx - 0x64], 0x313d46e6
mov ecx, 0x275c5168
cmp eax, 0x5168b931
pop esp
daa
int 0xe4
xlatb
ret
lcall 0xad66, 0xb24c0f53
lodsw ax, word [esi]
lodsd eax, dword [esi]
invalid
popfd
leave
ficomp word [ebx + 0xd]
jb 0x41ffd0
loope 0x41ffe8
loop 0x41ff66
add eax, 0x231f238c
cmp dword [ebp + 0x724d39fd], edx
cmp dword [edi], ebp
div dword [edx + 0x2c]
dec esp
das
jb 0x41ff08
push ecx
pushal
xlatb
fcomp qword [edx - 0x1fc5b6da]
scasd eax, dword es:[edi]
cmpsb byte [esi], byte es:[edi]
cmp al, 0x63
xchg ebx, eax
div ah
cmp ecx, ecx
invalid
xchg esp, eax
inc dl
ljmp 0xc82
push ss
pop edi
push ss
add al, byte [edi + 0x7bd6f4a2]
adc eax, 0xcf61efcd
mov ah, 0x4f
dec edi
retf 0xe785
and cl, byte [ecx + ebx]
dec esp
sbb ebx, dword [eax + esi - 0x4d4ed9c]
jl 0x4200a3
not eax
mov ah, 0x61
mov ecx, ss
jmp 0x9a15ecaf
je 0x41fff8
dec ecx
xchg ebx, eax
imul ecx, dword [esi - 0x71ed915f], 0xd0624444
in al, dx
jb 0x4200e1
or byte [esi + 0x7e9d0c97], 0xde
or al, 0x2d
std
xchg byte [edi - 0x765d287e], ch
add byte [esp + ebx + 0x177f011b], dl
jns 0x42008b
outsb dx, byte [esi]
adc dword [eax], edi
cmp al, 0xa0
ror ecx, cl
mov al, 0x5f
jle 0x42005f
test esi, ebp
mov dword [0x681adc02], eax
sbb edi, eax
mov cl, 0x38
invalid
pop eax
mov dword [0x1fc322f4], eax
mov byte [0x3ff9c250], al
push eax
je 0x420087
fdivr qword [esi]
cdq
jmp 0x17fed81e
fadd qword [ecx + ebx + 0x7d063c72]
push ecx
push es
jge 0x42013a
mov ah, 0xa
fild word [edx + 0x62]
cmp dword [edx - 0x6e316529], ebp
add al, 0xa2
mov cs, word [esi + edx*4]
insb byte es:[edi], dx
sbb dh, 0xb4
imul edx, dword [edx + 0x441cd2dc], 0xffffffbe
bound edi, qword [esp + 0x72]
mov ecx, 0x29425f17
pop esp
js 0x42011c
in al, 0xf
hlt
push 0xffffffffffffff98
aad 0x78
jb 0x4200e6
daa
pop es
pop esi
nop
xchg ebp, eax
push eax
xchg edx, eax
fstp dword [edi + esi*4 + 0x21]
push ss
mov eax, dword [0xbf3d3f6d]
xor eax, 0xd737b3bd
mov byte [0x2ff00828], al
invalid
sub byte [eax], cl
invalid