Function at 0x41f77f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x41f8bd
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x41f7ef
mov ebx, dword [ebp - 0x5c]
jmp 0x41f7f2
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x420035
xor edx, edx
test edx, edx
je 0x41f856
cmp eax, 0x10
jb 0x41f80f
mov edx, dword [ebp - 0x5c]
jmp 0x41f812
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x41f83a
call 0xd048ac
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x41f844
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x41fe10
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x41ff54
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x41ff02
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.004224a3
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xcd1f85
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x41fef4
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], 0xf
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov ebx, dword [ebp + 0x10]
push 0x14
mov esi, dword [ecx + 4]
call 0xcd0516
pop ecx
test eax, eax
je 0x41f8e7
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov dword [eax + 0xc], edi
xor edx, edx
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], dl
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
add dword [esi + 8], 1
cmp edx, ecx
je 0x4201b6
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x41f913
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x42005c
jmp 0x41f922
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x4201ae
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x41f9d6
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x4200c2
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x41f96b
mov edx, 1
mov byte [ebx + 0x10], dl
mov byte [edi + 0x10], dl
mov ebx, dword [ecx + 4]
mov edi, dword [ebx + 4]
mov byte [edi + 0x10], 0
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 4]
jmp 0x41f9c7
mov edx, dword [ebx]
cmp ecx, edx
je 0x420076
mov byte [ebx + 0x10], 1
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x10], 0
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
mov edx, dword [ebx + 8]
mov edi, dword [edx]
mov dword [ebx + 8], edi
mov edi, dword [edx]
mov dword [ebp - 0x24], edi
movsx edi, byte [edi + 0x11]
test edi, edi
je 0x42006b
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x420063
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x41f9c0
mov dword [edi + 8], edx
jmp 0x41f9c2
mov dword [edi], edx
mov dword [edx], ebx
mov dword [ebx + 4], edx
mov edx, dword [ecx + 4]
movsx ebx, byte [edx + 0x10]
test ebx, ebx
je 0x41f933
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 8]
test esi, esi
mov byte [ecx + 0x10], 1
mov dword [edx + 4], eax
mov dword [edx], 0
je 0x42019e
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [edx], esi
mov esi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
push edi
sti
inc ebx
lodsb al, byte [esi]
cmp eax, dword [eax + ebp*2 + 0x383642bf]
pushal
lodsd eax, dword [esi]
rol byte [esi - 0x65], 0xbf
sbb al, 0x2e
mov dword [esi - 0x3b], esp
adc dword [eax + 0x79787590], esp
mov eax, 0xb9ba58f6
push esp
sbb dword [ebx], ebx
out dx, al
invalid
push cs
inc edi
in eax, dx
popal
cwde
pop es
iretd
wait
push ss
aaa
test dword [edi - 0x23], ecx
test ebx, esi
shl bl, 1
and ecx, dword [edx - 0x24201297]
in eax, 0x8c
in eax, 0x73
xor esp, ebx
jne 0x41fe91
invalid
sbb bh, byte [0x3733d127]
out 0x6f, eax
bound ebx, qword [ecx - 0xc095871]
outsb dx, byte [esi]
das
outsd dx, dword [esi]
popfd
and eax, edx
jb 0x41ff56
cmp eax, 0x44903c02
mov byte [0x763805a9], al
outsb dx, byte [esi]
mov edx, 0x682d274e
scasd eax, dword es:[edi]
xchg dword [esi], ecx
aaa
push ss
pop ss
not dword [ebp + 0x39]
lea edi, [ecx]
jmp 0x41ff79
dec esp
sbb edi, dword [esi]
pushfd
pushfd
invalid
aad 0x97
cmpsb byte [esi], byte es:[edi]
sbb ebx, ebp
ret
xchg esp, eax
push es
mov eax, dword [0xa4979562]
pop esi
leave
cmpsd dword [esi], dword es:[edi]
dec edi
adc al, 0xd1
imul dword [0x393f5f9]
xchg ecx, eax
sbb al, 0xed
bound edx, qword [ebx - 0x4d292c0a]
xchg ebp, edi
push ebp
shl dword [esi - 0x80], 1
and bh, byte [ebp - 0x35]
push dword [edi]
aaa
pop esi
add eax, 0x9e4c2fd7
sahf
fmul st(7), st(0)
in eax, dx
or dword [ebp + ecx*8 + 3], edx
push esp
mov edi, 0xbd516f20
int3
mov ebp, 0x75357f57
mov bh, 0x7b
jae 0x420084
cmp cl, 0x59
cld
das
cmp al, 0xf7
in eax, dx
push es
dec edi
xchg esp, eax
push eax
scasd eax, dword es:[edi]
dec ebx
push esi
mov word [ebp + 0x35c8e26d], gs
invalid
clc
shr esp, 0x16
cmp dword [ebp - 0x5afae857], 0xffffffa0
mov al, byte [edi]
xchg edi, eax
shr byte [edi - 0x3b], 0x5f
retf 0xa94b
or dword [edi + esi*2], 0x15
out 0x88, al
or dh, dh
push esi
xor al, 0xb5
pop ecx
adc al, byte [eax]
xor al, 0xde
sal byte [ecx + 0x397899a1], 9
insd dword es:[edi], dx
bswap esp
xchg esp, eax
or al, 0xe3
dec ebp
mov byte [0xbccaf7b5], al
xor dword [esi - 0x21], 0x6b
or al, 0x12
stosb byte es:[edi], al
jmp 0x42009e
and ecx, dword [ebp + 8]
not dword [edi + 0x25]
punpcklbw mm4, mm3
insd dword es:[edi], dx
sti
cmp byte [edx], al
dec esp
mov edi, 0xbc2ab3fc
dec ebp
pop eax
mov bh, 0x1b
mov bl, 0x2a
mov esp, 0x1bb7584d
add dword [eax], ebp
mov word [ebx], ss
jno 0x4201c1
sub byte [ebx + edx - 0x3953f98f], cl
int3
lodsb al, byte [esi]
invalid
mov edx, 0xe94ba1bf
fiadd word [edx]
ret