Function at 0x100013e0
Capabilities:
Accept command line arguments
Allocate or change rwx memory
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x478
mov eax, dword [0x1001c078]
xor eax, esp
mov dword [esp + 0x474], eax
mov eax, dword [ebp + 8]
push ebx
push edi
mov dword [esp + 0x44], eax
call fcn.10002bc8
cdq
mov ecx, 0x9d
idiv ecx
push 0x20c
push 0
mov byte [0x1001d08c], dl
lea edx, [esp + 0x70]
push edx
call fcn.10006fd0
push 4
call fcn.100043db
xor ecx, ecx
lea edi, [esp + 0x78]
mov dword [esp + 0x80], eax
mov word [eax + 2], cx
mov dword [esp + 0x7c], ecx
call fcn.10001150
mov edx, dword [esp + 0x80]
push edx
call fcn.10002be9
mov ecx, dword [0x1001d060]
mov edx, dword [0x1001e44c]
add esp, 0x14
lea eax, [esp + 0x54]
push eax
mov eax, dword [edx]
push 0x40
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 8
mov dword [0x1001e440], 0xfffffada
call fcn.10002289
add esp, 4
push 1
push 0x28
push 0x76
push 0
lea ecx, [esp + 0x68]
mov dword [eax], 0
or byte [eax], 0xe4
push ecx
mov dword [0x1001e42c], eax
call dword [sym.imp.USER32.dll_SetRect]
mov dword [esi], 0
mov ecx, 0xfffffd8a
mov eax, dword [esi]
mov dword [0x1001e440], ecx
inc dword [esi]
cmp dword [esi], 0x100
mov dword [esp + eax*4 + 0x68], eax
jb 0x100014b5
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
test eax, eax
je 0x100014df
mov dx, word [eax]
mov word [0x1001e328], dx
mov ebx, dword [0x1001e450]
cmp dword [ebx], 0
je 0x10001680
mov dword [esi], 0
xor ecx, ecx
mov edi, dword [esi]
xor edx, edx
mov eax, edi
div dword [ebx]
mov eax, dword [esp + 0x44]
movsx edx, byte [edx + eax]
add edx, dword [esp + edi*4 + 0x68]
mov dword [0x1001e440], 0x240a
mov eax, dword [esi]
add ecx, edx
mov edx, dword [esp + eax*4 + 0x68]
and ecx, 0xff
mov edi, dword [esp + ecx*4 + 0x68]
mov dword [0x1001e440], 0x1c1ba
mov eax, dword [esi]
mov dword [esp + eax*4 + 0x68], edi
inc eax
mov dword [esp + ecx*4 + 0x68], edx
mov dword [esi], eax
cmp eax, 0x100
jb 0x100014f6
lea ecx, [esp + 0x48]
push ecx
call fcn.1000438a
add esp, 4
lea edx, [esp + 0x48]
push 0x79
push edx
call fcn.1000244a
add esp, 4
push eax
push str.ucntvrhuzomxaeako__s__d
push 0x1001e328
call fcn.100023c6
mov eax, dword [0x1001e44c]
xor ecx, ecx
add esp, 0x10
xor edx, edx
cmp dword [eax], ecx
je 0x10001622
cmp dword [esp + 0x44], ecx
je 0x10001622
mov dword [esi], ecx
cmp dword [0x1001d060], ecx
jbe 0x100015e7
add dword [0x1001e440], 2
mov ebx, dword [0x1001e44c]
mov ebx, dword [ebx]
inc ecx
and ecx, 0xff
mov eax, dword [esp + ecx*4 + 0x68]
add edx, eax
and edx, 0xff
mov edi, dword [esp + edx*4 + 0x68]
mov dword [esp + ecx*4 + 0x68], edi
mov edi, dword [esi]
add edi, ebx
mov dword [esp + edx*4 + 0x68], eax
mov ebx, dword [esp + ecx*4 + 0x68]
add ebx, eax
and ebx, 0xff
mov al, byte [esp + ebx*4 + 0x68]
xor byte [edi], al
mov eax, dword [0x1001d060]
inc dword [esi]
cmp dword [esi], eax
jb 0x10001598
fld dword [0x10019530]
sub esp, 8
fstp dword [0x1001d084]
fld qword [0x1001d098]
fstp qword [esp]
call fcn.10010c10
fld qword [0x10019528]
add esp, 8
fxch st(1)
call fcn.10010bea
fmul qword [0x1001d098]
fstp qword [0x1001d098]
jmp 0x10001680
push 0x1c
call fcn.100043db
add esp, 4
push eax
mov dword [0x1001e444], eax
mov dword [eax + 4], 0x111
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
mov dword [0x1001e448], eax
test eax, eax
je 0x10001680
mov eax, dword [0x1001e444]
cmp dword [eax + 0x10], 0
jne 0x10001663
mov ecx, dword [0x1001e324]
mov dword [eax + 0x10], ecx
cmp dword [eax + 0xc], 0
je 0x10001680
mov eax, dword [eax]
push 1
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push str.QbPsCgSsKi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, dword [esp + 0x47c]
pop edi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.10002294
mov esp, ebp
pop ebp
ret