Function at 0x1008a4e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x100fa040]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [0x87935a4]
test edx, edx
je 0x1008a860
mov ecx, 0x107e1d10
push esi
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a510
sub ecx, esi
jne 0x1008a520
push ecx
push 0x64
jmp 0x1008a536
mov ecx, 0x107e1cf0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1008a528
sub ecx, esi
jne 0x1008a555
push ecx
push 0x65
mov eax, 0x482b70
call eax
mov edx, 0x484a10
mov ecx, eax
call edx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100c0b64
mov esp, ebp
pop ebp
ret
cmp edx, 2
jne 0x1008a85f
movq xmm0, qword [0x107e1d10]
mov ecx, 0x8793718
movq qword [ecx], xmm0
mov ax, word [0x107e1d18]
mov word [ecx + 8], ax
mov al, byte [0x107e1d1a]
mov byte [ecx + 0xa], al
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
mov al, byte [ecx + 0x107e1d10]
lea ecx, [ecx + 1]
mov byte [ecx + 0x107e7d2b], al
test al, al
jne 0x1008a590
xor eax, eax
nop word [eax + eax]
mov cl, byte [eax + 0x107e1cf0]
lea eax, [eax + 1]
mov byte [eax + 0x107e7d1f], cl
test cl, cl
jne 0x1008a5b0
push ebx
push edi
push 0x5e
lea eax, [ebp - 0xa3]
mov dword [0x8793714], 1
push 0
push eax
mov dword [0x87935a4], 0x13
call fcn.100c2d20
movzx eax, byte [0x107e1d10]
add esp, 0xc
xor al, 0xfc
mov cx, word [0x107e1d18]
mov byte [ebp - 0xa0], al
movzx eax, byte [0x107e1d11]
xor al, 0xcf
mov dword [ebp - 0xa4], 0x1f15fc3
mov byte [ebp - 0x9f], al
movzx eax, byte [0x107e1d12]
xor al, 0xab
mov word [ebp - 0xa8], 0xcffc
mov byte [ebp - 0x9e], al
movzx eax, byte [0x107e1d13]
xor al, 0xfc
mov byte [ebp - 0xa6], 0xab
mov byte [ebp - 0x9d], al
movzx eax, byte [0x107e1d14]
xor al, 0xcf
mov byte [ebp - 0x9c], al
movzx eax, byte [0x107e1d15]
xor al, 0xab
mov byte [ebp - 0x9b], al
movzx eax, byte [0x107e1d16]
xor al, 0xfc
mov byte [ebp - 0x9a], al
movzx eax, byte [0x107e1d17]
xor al, 0xcf
mov byte [ebp - 0x99], al
mov al, cl
xor al, 0xab
mov byte [ebp - 0x98], al
mov al, ch
xor al, 0xfc
xor esi, esi
mov byte [ebp - 0x97], al
lea ebx, [esi + 3]
lea edi, [esi + 2]
mov eax, 0xaaaaaaab
mov ecx, esi
mul esi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
movzx eax, byte [ebp + ecx - 0xa8]
lea ecx, [edi - 1]
xor al, byte [esi + 0x107e1cf0]
mov byte [ebp + esi - 0x96], al
mov eax, 0xaaaaaaab
mul ecx
mov ecx, esi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
movzx eax, byte [ebp + ecx - 0xa7]
mov ecx, esi
xor al, byte [esi + 0x107e1cf1]
mov byte [ebp + esi - 0x95], al
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
movzx eax, byte [ebp + ecx - 0xa6]
mov ecx, esi
xor al, byte [edi + 0x107e1cf0]
add edi, 5
mov byte [ebp + ebx - 0x97], al
mov eax, 0xaaaaaaab
mul ebx
add ebx, 5
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
movzx eax, byte [ebp + ecx - 0xa5]
lea ecx, [esi + 4]
xor al, byte [esi + 0x107e1cf3]
mov byte [ebp + esi - 0x93], al
mov eax, 0xaaaaaaab
mul ecx
mov ecx, esi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
movzx eax, byte [ebp + ecx - 0xa4]
xor al, byte [esi + 0x107e1cf4]
mov byte [ebp + esi - 0x92], al
add esi, 5
cmp edi, 0x16
jl 0x1008a6a1
pop edi
pop ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x82], eax
movzx eax, byte [0xe61f68]
dec al
mov byte [ebp - 0x7e], al
movzx eax, byte [0xe61f69]
sub al, 2
mov byte [ebp - 0x7d], al
movzx eax, byte [0xe61f6a]
sub al, 3
mov byte [ebp - 0x7c], al
movzx eax, byte [0xe61f6b]
sub al, 4
mov byte [ebp - 0x7b], al
movzx eax, byte [0xe61f6c]
sub al, 5
mov byte [ebp - 0x7a], al
mov eax, 0xe61f70
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x79], xmm0
call fcn.100bf080
movzx edx, byte [ebp - 0xa3]
lea ecx, [ebp - 0xa4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x69], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x49], eax
movups xmmword [ebp - 0x59], xmm0
call fcn.100b5210
cmp dword [0x102c7390], 1
jne 0x1008a85f
cmp dword [0x107e1cec], 1
jne 0x1008a85f
push 0x107e1d10
lea eax, [ebp - 0x24]
push str.___s_
push eax
call fcn.100112b0
push 0x107e1cf0
lea eax, [ebp - 0x44]
push str.___s_
push eax
call fcn.100112b0
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [ebp - 0x24]
add esp, 0x18
push str..Settings.ini
push eax
push str.User
push str.AutoLogin
call esi
push str..Settings.ini
lea eax, [ebp - 0x44]
push eax
push str.Password
push str.AutoLogin
call esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100c0b64
mov esp, ebp
pop ebp
ret