Function at 0x10109a89
Capabilities:
Encode data using xor

Disassembly:
mov esi, dword [esp + 0xc]
mov dword [esp + 8], esi
pop dword [esp + 8]
push ecx
pushfd
xor ecx, ecx
add ecx, dword [esp + 0x10]
add ecx, 0xd2411e87
add ecx, 0x2dbee191
popfd
mov dword [esp], ecx
push ebx
mov ebx, dword [esp + 0x10]
adc byte [eax], al
add byte [eax], al
push ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0x14], ebx
push ebx
call 0x10109a71
jns 0x10109acd
lea ebx, [ebx - 0xff9a]
jmp ebx
push 0x1a94811
push ecx
call fcn.1012bfc5
jge 0x10109a23
invalid
and al, 4
mov dword [esp], edi
mov ecx, dword [esp + 8]
call fcn.100405e5
ja 0x10109a57
jbe 0x10109ad6
in eax, 0x30
dec ebp
das
fcompi st(0)
mov ah, 0xb1
in eax, 0x84
sub byte [ebp - 0x2b], bh
cmpsd dword [esi], dword es:[edi]
sub eax, edi
lds esi, [eax]
invalid
idiv byte [eax - 0x19]
out 0xc, eax
pop esp
add esp, dword [edi + 0x24cbf0a]
cmpsd dword [esi], dword es:[edi]
or byte [edx + 0x7a70292], ah
mov edi, 0x8a7024c
mov byte [0x7a70292], al
xor byte [edi], cl
add al, 0xa7
xor dword [edi + ebx*8], esp
das
in eax, 0x30
xchg edx, eax
and al, 0xdc
lock xchg dword [ecx + esi*4 + 0x7d2884e5], esi
aad 0xeb
push ss
test ch, 0x34
pop ebx
add dword [edi + 0x2cb9440a], esp
in eax, 0x30
rcr edi, 0x1e
inc esp
mov ecx, 0xc130e52c
fistp word [esi]
in eax, 0xa
sub dword [esp + esi - 0x765003c], ecx
lds edx, [esi - 0x3b3bc90e]
xor ch, al
lds eax, [ebp + ebx*2 - 0x29685fc9]
xor al, 0xc4
insb byte es:[edi], dx
rol dword [esi - 0x3d], 1
cmp ebp, dword [ebx]
push ebp
jge 0x10109aff
dec esp
dec edi
call 0x44701df6
les esi, [ebx - 0x55]
clc
lds ecx, [ebx]
outsd dx, dword [esi]
aaa
mov al, byte [0xa034da83]
clc
jle 0x10109b44
cmpsd dword [esi], dword es:[edi]
adc ebx, esi
bound esi, qword [esi]
mov al, byte [0xe52d1b19]
adc esi, dword [edx + ebx*4 + 0x4950dbf7]
add dword [edi + 0x3637021], esp
cmpsd dword [esi], dword es:[edi]
or ah, ah
mov ah, 0x9b
fdivp st(0)
not edi
jo 0x10109bc7
add esp, dword [edi - 0x643937ed]
fimul word [ebx]
xor byte [edi], bh
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 0x13
mov ebx, 0x21e52e2f
inc esp
mov ecx, 0x440ae52c
in eax, 0xa
inc esp
mov ecx, 0x4438e52c
mov ecx, 0x4431e52c
mov ecx, 0x4707e52c
movsd dword es:[edi], dword [esi]
das
in eax, 0x30
inc eax
insd dword es:[edi], dx
das
in eax, 8
jmp 0x15f5bb90
out dx, eax
mov dword [ebx], 0xda8c0aa7
lodsb al, byte [esi]
fstp dword [ecx]
fstp qword [esi]
in eax, 0x30
fcmovu st(0), st(4)
xchg esi, eax
jbe 0x10109b7c
xchg edx, eax
add ah, byte [edi + 0x2ca1c30]
cmpsd dword [esi], dword es:[edi]
adc esi, dword [ecx - 0x49]
mov al, byte [0x341deaba]
mov bh, 0x36
les esi, [ecx + edi*4 - 0x70012a92]
xchg edi, eax
jbe 0x10109c3d
movsd dword es:[edi], dword [esi]
das
in eax, 0x13
mov ebx, 0x21e52e2f
inc eax
insd dword es:[edi], dx
das
in eax, 0xa
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 0x38
mov ebx, 0x31e52e2f
mov ebx, 0x7e52e2f
inc eax
insd dword es:[edi], dx
das
in eax, 0x30
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 8
jmp 0x15f5bc16
mov dword [esp], esi
pop esi
lea esp, [esp - 4]
push edi
mov edi, dword [esp]
mov dword [esp + 4], edi
push eax
pushfd
xor eax, eax
add eax, 0xc9b4c068
add eax, 0x4655c7a8
popfd
mov eax, dword [eax]
mov dword [esp], eax
pop eax
pop edi
xor eax, esp
push ecx
mov ecx, dword [esp]
push ecx
mov ecx, dword [esp]
mov dword [esp + 4], ecx
push eax
mov eax, dword [esp]
mov dword [esp + 8], eax
lea eax, [esp + 0x274]
mov dword [esp], eax
pop eax
pop ecx
mov dword fs:[0], eax
push ebx
mov ebx, dword [esp]
xor dword [esp], ebx
push edi
mov edi, dword [esp + 4]
push edi
mov edi, dword [esp + 4]
mov dword [esp + 8], edi
mov dword [esp + 4], 0xb26b4168
pushfd
xor ebx, ebx
add ebx, dword [esp + 8]
add ebx, 0xc89c9660
add ebx, 0x84f82a58
popfd
mov dword [esp + 4], ebx
pop ebx
pop edi
xchg dword [esp], edi
push eax
lea eax, [esp + 0x50]
mov dword [esp], eax
pop eax
lea esp, [esp - 4]
push esi
mov esi, dword [esp]
push esi
mov esi, dword [esp]
mov dword [esp + 4], esi
pop esi
lea esp, [esp - 8]
push ebx
mov ebx, dword [esp]
mov dword [esp + 0x10], ebx
pop ebx
push edx
call 0x10109d22
je 0x10109d7d
lea edx, [edx + 0x4daa]
jmp edx
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 0xb
inc esp
mov ecx, 0x4008e52c
insd dword es:[edi], dx
das
in eax, 0x14
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 0x15
mov ebx, 0x11e52e2f
inc edi
movsd dword es:[edi], dword [esi]
das
in eax, 0x38
jmp 0x1df5bd94