Function at 0x41b9e7
Capabilities:
Encode data using xor

Disassembly:
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
jb 0x41e479
je 0x43de8d
jne 0x41a727
jp 0x41a788
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x475133
call esi
test eax, eax
jb 0x41e48c
shr ebp, 0x40
mov dword [ebp - 0x14], eax
je 0x43de8d
jne 0x41a74d
ret 0xd07b
push str.advapi32.dll
call esi
mov edi, eax
test edi, edi
jb 0x41e493
je 0x43de8d
jne 0x41a76a
cpuid
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.RegOpenKeyA
ja 0x4428dd
jbe 0x41a781
mov bl, 5
xchg dword [edi - 0x7ea979f1], ebx
add al, byte [eax]
jbe 0x4428dd
add eax, 0x9526ffc7
invalid
jno 0x42e571
jo 0x41b9f3
adc bh, byte ds:[ecx - 0x59]
jo 0x42e571
adc byte [ecx + 0x2df226ff], 0xf
xchg dword [edx - 0x69], esp
mov bx, bx
shr bh, 0x40
shr bp, 0x40
jns 0x448df4
mov ecx, ecx
js 0x41e477
adc byte [ebx + 0x6926ffdb], ch
clc
push ebp
pop ebp
mov ax, ax
jp 0x448df4
jmp dword [esi]
imul edi, eax, 0x89665d55
ror byte [edi], 0x8a
outsb dx, byte [esi]
test eax, 0xef870002
xchg edi, ebp
xchg ebp, edi
jmp dword [esi]
and esp, esp
call fcn.004457b5
add eax, 0x445d8b40
mov edi, dword [esi + 4]
jmp 0x44a2f5
nop
push ebp
jns 0x41e450
cmp byte [ebx + ebp*8], 0xb3
inc ebx
add byte [eax], al
inc ecx
add byte [eax + 0x40], al
add byte [ecx], al
add byte [eax], al
add al, 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
mov edi, 0x73004270
pop esi
inc esp
add byte [esi], dh
into
inc ebx
add byte [eax], al
add byte [eax], al
inc esp
add byte [eax], al
add byte [ebp + 0x80043be], ah
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
jmp 0x4277b6
mov ebp, esp
sub esp, 0x14
shr bh, 0x40
mov eax, dword [ebp + 8]
mov dword [ebp - 8], 0
test eax, eax
jb 0x4277b6
js 0x44bcf3
jns 0x42c48e
nop
cpuid
ret
jns 0x44bcf3
into
inc ebx
add byte [eax], al
add byte [eax], al
inc esp
add byte [eax], al
add byte [ebp + 0x80043be], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [esi + ecx*4], dl
inc esp
add byte [eax + eax], al
add byte [eax + eax], al
add bl, ch
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
mov edx, 0
and dword [eax], eax
add byte [edx], bh
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
xor byte [eax], al
add byte [eax], al
add al, 0xc6
inc ecx
add byte [ecx], bh
inc ebp
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add dh, dl
push eax
inc edx
add cl, ch
lds eax, [edx]
fiadd dword [ebx + eax*2 + 0x42c4fb00]
add byte [edi], dl
cwde
cmp al, 0xeb
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
push 0x9b004434
or al, 0x42
add byte [eax], al
add byte [eax], al
xor byte [eax], al
add byte [eax], al
into
inc ebx
add byte [eax + eax], dh
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x42c4c5
inc edx
add byte [0x30000000], cl
add byte [eax], al
add byte [edi + edi + 0x42], ch
add byte [ebx], al
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
or eax, 0x34004363
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add byte [eax - 0x14], dl
inc edx
add bl, ch
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [0x1400433a], cl
pop edi
inc edx
add byte [edi], bl
out 0x42, al
add byte [edi + 0x39], ah
inc esp
add byte [eax + 0x38e262c7], bl
add byte [eax], al
add byte [eax + 0x61], dh
inc edx
add byte [edx + 0x57], dl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
adc al, 0x5f
inc edx
add byte [edi], ah
out 0x42, al
add ah, ah
mov esi, 0x33d60041
add byte [eax], al
xor byte [eax], al
add byte [eax], al
shr byte [esi + 0x2be0041], 0
add byte [eax + eax], bh
add byte [eax], al
jecxz 0x42c58a
inc ebx
add bh, bh
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add byte [0x2d0042e6], dh
or al, 0x42
add byte [eax + eax], al
add byte [edi + ecx*2 + 0x45410042], al
cmp dword [ebp + 0x43], eax
inc ebx
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esi + ecx*4], dl
inc esp
add byte [eax + eax], cl
add byte [eax + eax], cl
add dh, dl
push eax
inc edx
add bh, dh
mov byte [edx], 0xda
test byte [ebx], al
adc eax, 0x930042c6
fcom qword [edx + 0x448e14ca]
add byte [eax + eax], al
add byte [eax + eax], al
add bl, ch
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
push 0x36004434
into
inc ebx
add byte [eax], bh
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [esi], dh
into
inc ebx
add byte [eax + eax], dh
add byte [eax], al
xor byte [eax], al
add byte [eax], al
je 0x42c5eb
inc edx
add byte [edi], cl
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + edi + 0x42], ch
add byte [ecx], al
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
or eax, 0x34004363
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add bl, al
rol byte [eax + eax - 0x15], cl
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [0x1400433a], cl
add byte [eax], bh
add byte [eax], al
add byte [eax], al
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
xor byte [eax], al
add byte [eax], al
or eax, 0x1400433a
pop edi
inc edx
add ch, cl
rol byte [eax + eax + 0x70], cl
popal
inc edx
add byte [edi + 0x66], dh
add byte [eax], al
xor byte [eax], al
add byte [eax], al
adc al, 0x5f
inc edx
add dh, dl
rol byte [eax + eax - 0x1c], cl
mov esi, 0x33d70041
add byte [eax], al
xor byte [eax], al
add byte [eax], al
jecxz 0x42c698
inc ebx
add bh, bh
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add byte [edx + 0x2d004411], cl
or al, 0x42
add byte [eax + eax], al
add byte [edi + ecx*2 + 0x1f0d0042], al
mov esp, dword [edi + 0x41]
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add byte [edx - 0x29ffbbef], dl
push eax
inc edx
add byte [edi - 0x64ffbd39], al
or al, 0x42
add byte [eax], al
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
fiadd dword [ebx + eax*2 + 0x42c72900]
add byte [edi], ah
inc esi
mov ebx, 0x3000442b
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + ebx*2], dl
inc edx
add byte [ecx], al
mov dh, 0x43
add bl, ch
mov bl, 0x43
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax + 0x34], ch
inc esp
add byte [edx + 0x350041db], bl
add byte [eax], al
add byte [0x2d000000], dh
or al, 0x42
add byte [eax + eax], al
add byte [eax], dh
adc eax, 0x400044
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
test byte [edi + 0x42], cl
add byte [edx], ch
invalid
push ebp
js 0x42c465
jns 0x42e57c
cmc
lds ecx, [edi]
mov ebx, esp
fdivp st(7)
inc edi
cmp eax, 0x10820f
add byte [eax], al
shr cl, 0x40
jae 0x42e593
jns 0x42c465
invalid
nop
cpuid
ret 0x768d
lea esi, [esi + 8]
jmp dword [esi]
call esi
shl eax, 0x20
push 0x475123
jmp 0x41a70d
lea esi, [esi + 8]
cmp dl, dl
mul byte [ebx + edi]
xchg bx, si
xchg si, bx
mov dword [ebp + 0x30], eax
jmp dword [esi]
je 0x44bd06
jne 0x44bcfe
sub dh, 0xea
mov ecx, dword [0x47530d]
mov dword [eax], ecx
mov eax, dword [0x475311]
push ebx
push esi
push edi
test al, 1
jb 0x4277bf
mov ax, ax
je 0x44bd3a
jne 0x44bd26
fisub word [eax + 0x255e5f84]
add al, byte [eax]
add byte [eax], al
pop edi
pop esi
and eax, 2
jb 0x41e45a
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
or al, 1
jb 0x41e45e
push 0x8000
mov dword [0x475311], eax
call esi
mov dword [ebp - 0xc], eax
or ah, 0x80
jb 0x41e474
push eax
js 0x446033
jns 0x44bd6c
mov ch, 0xc8
lodsd eax, dword [esi]
jns 0x446033
xor byte [edx - 0x7f], 0xe2
pop ds
add byte [eax], al
add byte [edi], cl
add byte [ebp - 0x76000282], 0xfb