Function at 0x41f3f7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x409362
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd4
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], ebx
mov esi, ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x2c], esi
mov dword [esi + 0x18], 0xf
xor eax, eax
mov dword [esi + 0x14], eax
mov byte [esi + 4], al
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x41f453
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x41f43c
add eax, 0xffffffff
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x1c], esi
mov edi, eax
mov dword [ebp - 0x18], ebx
cmp ecx, 0x10
mov dword [ebp - 0x14], edi
jb 0x41f46b
mov eax, dword [esi + 4]
jmp 0x41f46e
lea eax, [esi + 4]
cmp ebx, eax
jae 0x41fa83
xor eax, eax
test eax, eax
je 0x41f4c5
cmp ecx, 0x10
jb 0x41f486
mov eax, dword [esi + 4]
jmp 0x41f489
lea eax, [esi + 4]
mov dword [ebp - 0x38], esi
sub ebx, eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], ebx
cmp eax, ebx
jae 0x41f4a9
call 0xd05f54
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
mov eax, dword [esi + 0x14]
mov edx, eax
sub edx, ebx
cmp edi, edx
jb 0x41f4b3
mov edi, edx
mov dword [ebp - 0x40], edi
jmp 0x41f83b
mov dword [ebp - 0x3c], edi
cmp edi, 0xfffffffe
jbe 0x41f4d8
call 0xd05f15
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x18]
cmp ecx, edi
jb 0x41f993
test edi, edi
je 0x41f977
mov eax, dword [ebp - 0x3c]
test eax, eax
ja 0x41f928
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x20]
mov eax, esi
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
add ebx, edi
cmp eax, ebx
jae 0x41f84c
call 0xd05f54
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0x14]
mov edx, eax
sub edx, ebx
cmp edx, 0xffffffff
mov edi, edx
jb 0x41f85c
mov edi, 0xffffffff
test edi, edi
ja 0x41f8ce
mov ebx, dword [ebp - 0x30]
test eax, eax
jae 0x41f872
call 0xd05f54
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0x14]
cmp eax, ebx
jae 0x41f878
mov ebx, eax
test ebx, ebx
jbe 0x41f4f6
mov edx, dword [esi + 0x18]
cmp edx, 0x10
jb 0x41f890
mov edi, dword [esi + 4]
mov esi, dword [esi + 4]
jmp 0x41f896
lea edi, [esi + 4]
add esi, 4
mov byte [ebp - 0x80], 0
add esi, ebx
sub eax, ebx
push eax
push esi
push edx
push edi
call 0xcd36f2
add esp, 0x10
mov esi, dword [ebp - 0x2c]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
sub edx, ebx
mov dword [esi + 0x14], edx
cmp eax, 0x10
jb 0x41f8c2
mov eax, dword [esi + 4]
jmp 0x41f8c5
lea eax, [esi + 4]
mov byte [eax + edx], 0
jmp 0x41f4f6
mov eax, dword [esi + 0x18]
cmp eax, 0x10
jb 0x41f8de
mov ecx, dword [esi + 4]
mov esi, dword [esi + 4]
jmp 0x41f8e4
lea ecx, [esi + 4]
add esi, 4
mov byte [ebp - 0x84], 0
add ecx, ebx
sub eax, ebx
add ebx, edi
add ebx, esi
sub edx, edi
push edx
push ebx
push eax
push ecx
call 0xcd36f2
add esp, 0x10
mov esi, dword [ebp - 0x2c]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
sub edx, edi
mov dword [esi + 0x14], edx
cmp eax, 0x10
jb 0x41f919
mov eax, dword [esi + 4]
jmp 0x41f91c
lea eax, [esi + 4]
mov byte [eax + edx], 0
mov eax, dword [esi + 0x14]
jmp 0x41f860
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
cmp edx, 0x10
jb 0x41f938
mov ecx, dword [ecx + 4]
jmp 0x41f93b
add ecx, 4
push dword [ebp - 0x14]
push dword [ebp - 0x18]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
call 0xcd3677
add esp, 0x10
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x18]
mov dword [edx + 0x14], ecx
cmp eax, 0x10
jb 0x41f968
mov edx, dword [edx + 4]
jmp 0x41f96b
add edx, 4
mov esi, dword [ebp - 0x2c]
mov byte [edx + ecx], 0
jmp 0x41f4f6
mov dword [esi + 0x14], 0
cmp ecx, 0x10
jb 0x41f988
mov esi, dword [esi + 4]
jmp 0x41f98b
add esi, 4
mov byte [esi], 0
jmp 0x41f4e8
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x60], esi
mov edx, edi
mov dword [ebp - 0x88], edi
or edx, 0xf
cmp edx, 0xfffffffe
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x68], edx
jbe 0x41f9c0
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x68], edi
jmp 0x41f9d7
mov esi, edx
mov ebx, ecx
shr ebx, 1
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
cmp ebx, edx
ja 0x41fa63
mov dword [ebp - 0x64], 0
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x8c]
add eax, 1
mov dword [ebp - 0x8c], eax
jne 0x41fa00
xor eax, eax
mov dword [ebp - 0x8c], eax
jmp 0x41fa47
push ebx
in al, 0xc
int1
int 0xa
xchg dword [eax - 0x2c4c3d3e], edi
mov bl, 0xd3
add eax, 0x991c9d7
jbe 0x41fa89
mov al, byte [ebp + 0x47]
ret
mov al, byte [eax + 0x7fb0382a]
invalid
mov al, byte [0x1f4c3171]
pop bx
mov ebx, 0xdb2f3bba
push edi
insd dword es:[edi], dx
mov byte [eax - 0x34378959], dl
pushfd
pop edx
enter 0xffffffffffff9ccb, 0x5a
mov al, byte [eax - 0x2943c55b]
pop eax
rcr byte [esi], cl
out 0xe3, al
je 0x41fa0a
retf 0x2a4f
xor eax, 0xcc7e32a7
jle 0x41fa51
xlatb
mov edi, 0x2d3c3357
cmp al, 0x2d
xor byte [esi + 0x5f274296], al
mov eax, dword [0x1240b6f2]
dec esi
add byte [ebx - 0x172a30e0], bl
pop ss
sbb dh, byte [edx + 0x7ac302e3]
push edx
and eax, 0x874352bc
mov word [edx], ds
xlatb
call 0x47cf6f44
and dword [ebp + 0x2305ca5c], 0xbf7625df
daa
adc al, 0x33
loop 0x41fa85
xchg dword [edx + ebx + 0x748fe8d7], ecx
lea eax, [edi - 0x7f]
movsd dword es:[edi], dword [esi]
pop esp
retf 0x2305
les ebp, [eax - 9]
fdivp st(2)
or eax, 0x98af47d7
mov dh, 0x89
fnstcw word [ebx + 0x53423f7f]
pop ds
xchg ebx, eax
jecxz 0x41faac
add esp, ecx
adc byte [0xe6a57751], bh
cmp ah, al
int1
int 0x60
inc edx
xchg ecx, eax
out 0x3e, eax
mov ebp, 0x7775a89d
jae 0x41fa80
sbb byte [ecx + 0x3c], al
wait
les esp, [eax]
dec esi
mul bl
inc edx
outsd dx, dword [esi]
sub ch, byte [edi]
loope 0x41fb5c
ret 0xf136
push cs
cmpsd dword [esi], dword es:[edi]
sti
sbb al, 0x98
fmul st(6)
ja 0x41fb5b
out dx, al
pop es
xchg dword [ebx], edi
hlt