Function at 0x100120af
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x10170c30]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
pushfd
test byte [0x100120df], 0xf5
jne 0x100120e0
in al, dx
js 0x100120dd
inc ecx
adc al, 0xe4
fnstenv [ecx - 0x5a5c41da]
cmc
dec eax
stosb byte es:[edi], al
popfd
and dword [ebp - 0x8c], 0
push ebx
pushfd
test byte [0x100121c2], 0xa8
jne 0x100121c3
dec edi
dec ecx
fisubr dword [eax - 0x5b]
xchg ebx, eax
cmp byte [ebx], al
les esp, [esi - 0x5ad98f32]
sbb dword [ebp - 0x6df16f1], esp
imul edx, dword [ecx + 0x71e0197b], 0xfea7d777
push ds
cmp eax, 0xa7b17747
or byte [0xf09dc8ba], cl
pop esp
push esp
or al, 0xb1
rol esi, 0xf
xchg byte [edi + edx*2], cl
sub al, 0xb0
rol dword [edx + 0x24], 1
push ebx
and dword [ebp + 0x37836845], 0x714eea33
inc ebp
mov dh, bl
dec ecx
and eax, 0xed78bda8
adc cl, byte [ecx]
invalid
mov ebp, 0x912ed78
push 0x75
aaa
cwde
arpl word [esi + eax*2 + 0x5f194a45], bp
xor dword [ebx - 0x48], eax
jle 0x10012127
sub bl, byte [0x1eba1f27]
sub bl, dl
cmp dword [ecx + 0x6609ae7], ecx
inc esi
mov dword [bx + si + 0x7887], ebp
pop ecx
mov bl, 0xd7
cmpsb byte [esi], byte es:[edi]
nop
and eax, 0x59783692
add dword [esi - 4], ebx
imul ebp, edx, 0x5a
pop es
cmpsb byte [esi], byte es:[edi]
jecxz 0x100121df
ror dword [edi - 0x31], 1
mov eax, dword [0xb335ec92]
pop ds
cmp al, 0x3c
daa
fimul word [esi]
xchg edx, eax
dec ecx
addps xmm1, xmmword [ebp + edi*4 - 0x6e]
mov dl, 0xe
jns 0x10012142
inc eax
dec edi
mov bl, 0x10
cmpsd dword [esi], dword es:[edi]
mov dl, 0xd2
push esi
mov cl, 0x4b
js 0x1001218d
cwde
fdiv st(2), st(0)
int 0x15
push esi
cmp al, 0x29
lea edx, [esi + 0x76]
pop ecx
and al, 0xd4
js 0x100121c1
inc ebp
push edx
stosd dword es:[edi], eax
mov ebx, 0x3581fb05
arpl word [ecx + 0x73], si
dec ebp
jae 0x10012210
popfd
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
pushfd
test byte [0x100122c0], 0x33
jne 0x100122c1
mov edx, 0xb883f9ca
fdivr qword [edi - 0x87262fb]
mov eax, 0x87ba1030
stc
cmp dword [eax - 0x62fa4024], 0xffffff8d
idiv dword [eax - 0x7845efd0]
sub al, 0xd9
popfd
mul dword [eax]
pop ebx
call 0x6f8da7b6
push esi
sub eax, 0xbf43561f
out 0x33, al
test dword [ecx], ebp
inc esp
adc byte [ebx - 0x236c9bbd], dl
xchg ebx, eax
cli
test al, 0xde
add ch, byte [esi]
cmc
cmc
dec ebx
pop ebx
cmp dword [ecx + esi*2 + 0x182ef900], ecx
cdq
add byte [edx - 0x15bd94c0], al
pop esi
sub dword [edi + 0x24009c61], edx
adc eax, 0xdf6dea4
and al, 0x8c
mov bh, 0x65
and byte [ebx + 0xb84f8eb], dh
cmp edx, dword [edi]
xchg byte [ecx], dl
ror byte [eax - 0x53], cl
pop ss
sub ah, byte [ebx + 0x45]
enter 0xffffffffffffb2e0, 0xffffffffffffffa7
xlatb
add ah, byte fs:[esi + esi*4]
aad 0xc2
adc al, 0xa7
jl 0x10012289
mov dh, 0xd5
ret 0xa714
call 0x76bb608c
sub esi, ebp
dec ebx
cld
inc edi
and byte [eax], 0x80
mov ebp, ecx
push ecx
mov esi, 0x34a853fa
jns 0x10012213
and ebp, dword [esi]
out dx, al
sub al, ch
je 0x1001228c
or byte [ebp - 0x62f8fbd2], dh
sahf
add byte [eax - 0x32ef9ba0], dh
push 0x2d10ab35
cmp dl, byte [ebx]
imul edi, dword [ebx - 0x46e7a782], 0xbf4bb6df
sub eax, 0xbb69133a
jle 0x100122e1
sbb byte [ecx - 0x40b44921], bh
mov dh, 0x4b
mov edi, 0x731c5032
mov eax, 0x98be940f
mul byte [0x3d3a893a]
mov dl, 0x75
mov edx, 0xd12a7cd3
imul edx, dword [edi - 0x67a0f0ed], 0x91159352
pop ebx
ljmp 0x13b7
xor dl, byte [eax + 0x1c]
jae 0x1001224c
sete byte [esi + 0x3a25f698]
mov dword [edx], edi
cmp eax, 0xd3ba75b2
jl 0x100122ce
shr dword [ecx - 0x69], 1
adc ecx, dword [edi]
pop edi
cwde
push edx
xchg ebx, eax
adc eax, 0x4fea5b91
call 0x23b8795a
in eax, 7
xchg dword [0x7c6ffa58], ebx
sbb al, 0x70
popfd
push 0x64
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x88]
invalid
pushfd
test byte [0x100123b7], 0xca
jne 0x100123b8
retf 0x850f
dec edi
adc edx, dword [edi - 0x1e]
add ebx, esi
loop 0x100122e4
std
std
test dword [eax + 0x410c4a84], eax
mov eax, dword [0x7024676f]
sbb dword [ebp - 0x3d], ecx
jo 0x10012282
sbb al, 0xa5
jae 0x10012336
shl cl, cl
call 0x896f3438
fmul dword [ebp + 0x2d2054a1]
ficom word [edx]
or ebx, ecx
imul edi, dword [edi - 0x23a8bb48], 0x35e35209
fldcw word [ecx - 0x41]
mov eax, 0x9dc5744
push edx
jecxz 0x10012349
sbb edx, dword [ebp + 0x76]
outsd dx, dword [esi]
cli
adc al, byte [ebx]
xor eax, 0xe2093dd2
mov word [edx - 0x24], ds
les esp, [esi - 0x52e48996]
pop eax
pop esp
pop edx
int3
push 0x76
sbb ebp, dword [ebp - 0x33a5a3a8]
sbb ch, byte [edx + 0x7b19ab74]
aad 0xf9
jnp 0x10012342
jbe 0x100122bf
push cs
leave
int1
push ds
or ch, byte [eax]
cmpsd dword [esi], dword es:[edi]
mul bh
jbe 0x10012309
out 0x76, eax
les ebp, [ebx - 0x78]
jl 0x100122d0
imul ecx, dword [eax + 0x7799877c], 0xffffff8b
cdq
ja 0x100122d7
adc eax, 0x4c55fdaf
aad 0xed
jle 0x10012326
sar dword [ebp + 0x7cf035db], 0x34
popal
add esp, esi
dec edi
pop ecx
xchg ecx, eax
mul dword [ebp + 0x140c3a9e]
ficomp dword gs:[edi + 0x12ebf96c]
dec eax
cmpsb byte [esi], byte es:[edi]
pop eax
or dword [esi + 0x51], edx
mov dword [0x80ff9190], eax
cli
dec ecx
push esp
push esp
inc edx
and eax, 0xae4f07ec
adc eax, 0x8bb5608f
pop edx
clc
ror dword cs:[0x781fde7d], cl
push es
outsd dx, dword [esi]
lea esp, [ebp + 0x18a03d63]
dec ebp
jo 0x100123ba
clc
jl 0x10012360
pop edx
das
pop eax
push esi
mov edi, edi
add byte [eax - 0xf], bh
mov eax, 0x652e1785
xchg byte [esi], dh
sahf
cwde
popfd
mov dh, 0xf1
popfd
push eax
push 0
push reloc.WS2_32.dll_closesocket
mov dword [ebp - 0x90], 0x1f
mov byte [esi], 0
call edi
mov ebx, 0x103
jmp 0x10012b1f