Function at 0x100121a6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
mov dword [ebp - 0x10], 0xb8
lea eax, [ecx - 9]
cmp dword [ebp - 0x10], 0x1a24
push esi
push edi
jle 0x10012266
wait
int3
cdq
mov ecx, 0xc8
idiv ecx
mov dword [ebp - 0x10], 0x682
cmp dword [ebp - 0x10], 0x1ae8
mov edi, eax
jle 0x10012329
xchg edx, eax
loop 0x1001229c
and byte [ebx - 0x6b7d4f3e], 0xdc
imul esi, dword [eax + 0xe], 0xe76540d2
jle 0x100122d4
retf
mov ecx, 0x30c2ba83
cmp bl, byte [edx]
aam 0x64
in eax, dx
pop ebp
adc dword [edi + 0x49], esp
sbb eax, 0xc978d4f7
xchg esp, eax
cmp dword [ebp + 0x4e], ebx
into
sbb dword [esi + 0x7f78856e], ebp
pushal
pop ss
outsd dx, dword [esi]
je 0x1001230f
cmp al, 0xa7
cli
aam 0x4d
pop esi
pushal
or eax, dword [edx + 0x31]
pop ebp
xor bh, byte [ebx]
das
enter 0xffffffffffffec29, 0xffffffffffffffab
int3
loop 0x100122ee
and ecx, eax
aad 0x4f
push cs
sbb eax, 0xd373bcc5
hlt
dec esi
mov al, 0x51
xchg byte [ebx], dl
ret 0xa3ae
imul edx, ebx, 0x39a28a92
push ecx
or ch, byte [eax + 0x116fbbd]
rcl dword [eax + 0x6ef01d5b], 0xcb
je 0x1001233f
mov dword [0xc7cdfd66], eax
inc ebp
invalid
mov dword [ebp - 0x10], 0x879
cmp dword [ebp - 0x10], 0x162b
jle 0x1001243c
lcall 0xbc24, 0x9606362
arpl word [eax + 9], sp
and al, 0xbc
mov dl, 0x1b
neg byte [esi + 0x75]
pop ecx
das
push ebp
mov al, pe_nt_image_headers32
mov ebp, 0xc1319fee
sbb dword [edx + 0x1f70cf56], ecx
and al, 0x55
stosd dword es:[edi], eax
fdivr qword [esi - 0x55201303]
pushfd
pop ebp
fst st(1)
aaa
invalid
mov dword [ebp - 0x10], 0x78b
cmp dword [ebp - 0x10], 0x1ab4
jle 0x100124d2
mov edx, 0x9874abaf
cwde
jo 0x10012454
insd dword es:[edi], dx
jns 0x100124b7
popfd
clc
sub al, 0x46
or ebx, edi
adc edi, ecx
push dword [edi + 0x6a59bca5]
push esi
call 0xd6010436
lds edi, [ecx - 0x7c19004e]
cld
mov esp, dword [ebp - 0x71f061a5]
mov edx, 0x5c26e99c
invalid
dec edi
ret 0xea97
mov dword [ebp - 0xc], 0x6512
mov dword [ebp - 0x10], 0xf29
cmp dword [ebp - 0x10], 0x2243
jle 0x1001257e
rcl dword [edi - 0x64757d62], 0xae
movsd dword es:[edi], dword [esi]
nop
xchg dword [ebx - 0x7a], esp
inc esi
xor dword [eax + 0x283e4dee], ebp
iretd
mov dword [ebp - 0x10], 0xc25b
mov dword [ebp - 8], 0x1c2
cmp dword [ebp - 8], 0x13c1
jle 0x1001262a
jmp 0x53a1a063
xor esi, esi
inc esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 8], 0x73ee7637
mov dword [ebp - 8], 0xc7d24b5e
mov dword [ebp - 8], 0xbe360de5
mov dword [ebp - 8], 0x31
cmp dword [ebp - 8], 0x234e
jle 0x10012757
mov dword [ebp - 8], 0x12fc
cmp dword [ebp - 8], 0x1506
jle 0x100127da
mov cl, 0xf3
pushal
lahf
mov al, byte [0xe9926621]
dec eax
xchg ebx, eax
pushfd
push eax
shr eax, 1
retf 0xd835
xor ebx, ebx
mov dword [ebp - 8], ebx
jmp 0x100127ef
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x14], 0xbe56890c
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100127e1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10012805
mov eax, esi
cmp dword [ebp - 0x14], ebx
jne 0x10012807
mov eax, ebx
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0xc]
imul edx, eax
mov eax, dword [ebp - 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setle cl
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x10]
jg 0x10012863
mov dword [ebp - 8], 3
jmp 0x10012858
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push eax
push ebx
call fcn.10018c96
dec dword [ebp - 8]
pop ecx
pop ecx
cmp dword [ebp - 8], 0xffffffe9
jne 0x10012846
jmp 0x10012cbc
mov dword [ebp - 0x10], 0x824
cmp dword [ebp - 0x10], 0x1a5a
jle 0x1001295d
insd dword es:[edi], dx
or eax, 0xe9edb113
lds edi, [edi + 0x1d]
ror byte [ebp + 0x3d106762], cl
int 0xc
imul ebp, dword [edi], 0xffffff96
mov ch, byte [edi + 0x59]
ror dword [edi + 0x39c64cb0], cl
clc
dec esi
mov edx, 0x6aa6a3d0
in al, dx
xor dword [ecx], edi
dec esp
push edx
jmp 0x3d7270e9
mov dword [ebp - 0x10], 0x2a93
mov dword [ebp - 8], 0x7a7
cmp dword [ebp - 8], 0x1a56
jle 0x10012a18
fcomp qword [esi + 0x30]
mov ecx, 0x7155a8ae
or cl, byte [edi + edx - 0x2c8a8d95]
pop esi
ret 0x543c
mov dword [ebp - 8], ebx
jmp 0x10012a2b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x2c], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10012a1d
mov dword [ebp - 8], ebx
jmp 0x10012a44
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x20], 0x95cc9e52
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10012a36
mov dword [ebp - 8], 0xe32
cmp dword [ebp - 8], 0x2408
jle 0x10012aa9
adc al, 0x5a
pop ebx
cmp eax, 0x241f5ff6
pop ebx
adc eax, 0x4d9d0f5b
invalid
mov dword [ebp - 8], ebx
jmp 0x10012bbd
mov dword [ebp - 0xc], ebx
jmp 0x10012bb1
mov dword [ebp - 0x1c], 0x1eb
cmp dword [ebp - 0x1c], 0x2581
jle 0x10012b05
sbb al, 0x63
jmp 0x37d705f5
push es
mov al, byte [0x96fd8d1e]
push ss
ret 0x45c7
mov dword [ebp - 0x1c], 0x12c1
cmp dword [ebp - 0x1c], 0x1da6
jle 0x10012ba5
loopne 0x10012afd
push ebp
inc esp
sub cl, byte [edx - 0x70]
fnstsw word [ecx - 0x22]
sbb byte [edx + 0x22], dl
je 0x10012b9b
invalid
cmp al, 0xea
cmp cl, byte [ebp - 0x5a09805d]
bound ecx, qword [ebx + 0x5c39f445]
test esp, ebp
mov eax, dword [ebp - 0xc]
cmp dword [ebp + eax*4 - 0x14], ebx
jne 0x10012bba
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x10012ab9
inc dword [ebp - 8]
cmp dword [ebp - 8], 8
jne 0x10012ab1
mov dword [ebp - 0x1c], 0xdb0
cmp dword [ebp - 0x1c], 0x1ef2
jle 0x10012c67
pop edx
pop ss
lea esi, [ebx + 0x42]
pop ebx
sub byte [esi - 0xc], al
retf
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
mov eax, 0xd33d73c1
setne dl
cmp eax, edx
mov dword [ebp - 0x20], edx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x982f
mov eax, dword [ebp - 0x2c]
setl cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0xc]
cmp ecx, eax
setne dl
sub edx, 0x7fb1
cmp edx, dword [ebp - 0x10]
jle 0x10012caf
cmp dword [ebp - 0x2c], ebx
jne 0x10012caf
mov esi, ebx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp esi, eax
setg cl
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], 0xe4b
cmp dword [ebp - 0x1c], 0x1458
jle 0x10012d3f
mov dl, 0x44
sub al, 0x7a
imul eax, edx, 0x6b433f4
sbb al, 0x13
wait
test byte [esi - 0x4c], 0x63
leave
adc byte [esi - 0x7636ede0], bh
mov ch, 0x1c
adc ecx, dword [esp + esi]
dec ebx
das
mov edi, 0x264e4359
fcmovu st(0), st(7)
imul ecx, edi, 0xffffffdb
jbe 0x10012cd3
hlt
test dword [ecx + 0x17d9b705], 0xd809ecec
imul esi, esp, 0xdeebf6d5
pop ebp
push ebp
mov dword [0xffa51c19], eax
pop es
sal dword [edi - 0x70], 1
fiadd dword [ebx]
iretd
lea eax, [ebp - 1]
mov byte [ebp - 1], bl
push eax
push ebx
call fcn.10017aaa
mov dword [ebp - 0x1c], 0x8b5
cmp dword [ebp - 0x1c], 0x1774
pop ecx
pop ecx
jle 0x10012ddb
into
lodsb al, byte [esi]
mov esi, 0xc3d7c9d6
dec esi
sub dword [edx + 0x76], edx
lds ecx, [0x70002931]
dec ebx
dec eax
or bl, byte [eax + 0x5170e2fc]
int 0x6d
push edx
nop
and eax, 0xf5c5dacb
push edx
mov bl, 0xb6
invalid
lea eax, [edi - 9]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret