Function at 0x107fca7
Capabilities:
Accept command line arguments
Log keystrokes via polling

Disassembly:
mov eax, 0x12756cc
call fcn.01160168
sub esp, 0x25c
mov eax, dword [0x12cf8c8]
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x234], eax
mov eax, dword [ebp + 0x10]
push 1
mov dword [ebp - 0x238], eax
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, 0x10088f0
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
xor ebx, ebx
push ebx
mov dword [ebp - 0x22c], ebx
movsw word es:[edi], word [esi]
mov dword [ebp - 0x224], 1
call dword [sym.imp.ole32.dll_OleInitialize]
mov byte [0x12d24c8], bl
mov dword [0x12d24cc], ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [0x12d2458], eax
call fcn.0107d13c
mov dword [0x12d245c], eax
lea eax, [ebp - 0x24c]
push eax
mov dword [ebp - 0x24c], 8
mov dword [ebp - 0x248], 0x514
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0x10076dc
push dword [ebp - 0x234]
mov esi, 0x12d23b8
push 0x12d2374
mov ecx, esi
mov dword [0x12d2450], 0x1388
mov dword [0x12d2454], 0x3e8
call fcn.0107cc98
call fcn.010459bc
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x238]
call fcn.0107bf20
cmp eax, ebx
mov dword [ebp - 0x228], eax
je 0x107fe60
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x10088d8
push dword [ebp - 0x228]
call edi
test eax, eax
je 0x107fdfd
push 0x10088c4
push dword [ebp - 0x228]
call edi
test eax, eax
je 0x107fe1c
push 0x10088ac
push dword [ebp - 0x228]
call edi
test eax, eax
je 0x107fe59
push 0x1008898
push dword [ebp - 0x228]
call edi
test eax, eax
je 0x107fe59
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x228]
call fcn.0107bf20
cmp eax, ebx
mov dword [ebp - 0x228], eax
jne 0x107fd9a
jmp 0x107fe60
push ebx
push 1
push esi
call fcn.0107df72
push 0x1001db0
push esi
mov dword [ebp - 0x22c], eax
call fcn.0107cac9
push ebx
push ebx
push ebx
jmp 0x107fe3a
push ebx
push 1
push esi
call fcn.0107decb
push 0x1001db0
push esi
mov dword [ebp - 0x22c], eax
call fcn.0107cb94
push ebx
push ebx
push 1
or dword [ebp - 0x22c], eax
push 0xca
push esi
call fcn.0107e000
or dword [ebp - 0x22c], eax
mov dword [ebp - 0x224], ebx
jmp 0x107fe60
mov byte [0x12d24c8], 1
lea eax, [ebp - 0x23c]
push eax
push dword [ebp - 0x238]
mov dword [ebp - 0x244], 0x100355c
mov dword [ebp - 0x23c], ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor edi, edi
inc edi
cmp dword [ebp - 0x23c], edi
mov dword [ebp - 0x234], eax
jle 0x107feed
cmp dword [ebp - 0x23c], edi
lea eax, [ebp - 0x220]
mov word [ebp - 0x220], bx
mov dword [ebp - 0x244], eax
jle 0x107feed
cmp edi, 1
jle 0x107feca
push 0x104
push 0x1006808
lea eax, [ebp - 0x220]
push eax
call fcn.0118c2ac
mov eax, dword [ebp - 0x234]
push 0x104
push dword [eax + edi*4]
lea eax, [ebp - 0x220]
push eax
call fcn.0118c2ac
inc edi
cmp edi, dword [ebp - 0x23c]
jl 0x107feaf
cmp dword [ebp - 0x224], ebx
je 0x10801e6
call fcn.0107c0c6
test al, al
je 0x107ff2c
cmp byte [0x12d24c8], bl
mov dword [ebp - 0x224], ebx
jne 0x10801e6
cmp dword [ebp - 0x23c], 1
jle 0x10801e6
push dword [ebp - 0x244]
call fcn.0107c1a5
cmp dword [ebp - 0x224], ebx
je 0x10801e6
mov ecx, 0x12d2398
call fcn.0107c07c
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
push 0x10
setne byte [ebp - 0x22d]
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x107ff69
mov byte [ebp - 0x22d], bl
cmp byte [ebp - 0x22d], bl
je 0x107ff82
push 0xc94700e8
mov dword [ebp - 0x224], ebx
call fcn.0116f1b4
pop ecx
cmp dword [ebp - 0x224], ebx
je 0x10801e6
push 0x1007a90
call fcn.010614ac
test al, al
jne 0x107ffac
push 0x4ec
call fcn.010613bb
mov dword [ebp - 0x224], ebx
cmp dword [ebp - 0x224], ebx
je 0x10801e6
push 0x1008870
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x12ceab0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x12ceab0], ebx
je 0x107ffdf
cmp eax, 0xb7
jne 0x107fff0
push 0xc94700e9
call fcn.0116f1b4
pop ecx
mov dword [ebp - 0x224], ebx
cmp dword [ebp - 0x224], ebx
je 0x10801e6
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
test eax, eax
jne 0x1080017
push 0xc94700ed
call fcn.0116f1b4
pop ecx
mov dword [ebp - 0x224], ebx
cmp dword [ebp - 0x224], ebx
je 0x10801e6
mov dword [ebp - 0x240], ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x240]
push eax
call fcn.0104650b
cmp eax, ebx
jge 0x1080040
mov edi, eax
jmp 0x1080099
push dword [ebp - 0x240]
lea ecx, [ebp - 0x238]
call fcn.01045d3e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x228]
call fcn.01044ec9
mov byte [ebp - 4], 2
lea eax, [ebp - 0x228]
push eax
lea ecx, [ebp - 0x238]
call fcn.0107cd79
mov edi, eax
cmp edi, ebx
jge 0x10800b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x228]
call fcn.010454b8
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x238]
call fcn.010454b8
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0x240]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, edi
jmp 0x108021b
lea ecx, [ebp - 0x228]
call fcn.0107bfb4
push dword [ebp - 0x228]
call fcn.0105309c
mov dword [ebp - 0x234], eax
fild dword [ebp - 0x234]
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x268]
fstp qword [ebp - 0x25c]
fld qword [0x10071c0]
push eax
push dword [ebp - 0x240]
fstp qword [ebp - 0x254]
mov dword [ebp - 0x234], 0x400
call fcn.0118c876
test eax, eax
jl 0x108013e
mov eax, dword [ebp - 0x234]
fild dword [ebp - 0x234]
test eax, eax
jge 0x1080121
fadd qword [0x1003568]
fmul qword [0x1008868]
fcom qword [0x10071c0]
fnstsw ax
test ah, 0x41
jne 0x108013c
fstp qword [ebp - 0x254]
jmp 0x108013e
fstp st(0)
fld qword [ebp - 0x254]
fadd st(0), st(0)
fadd qword [0x1003510]
fcomp qword [ebp - 0x25c]
fnstsw ax
test ah, 0x41
jne 0x108016a
push 0xc94700f6
call fcn.0116f1b4
pop ecx
mov dword [ebp - 0x224], ebx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x228]
call fcn.010454b8
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x238]
call fcn.010454b8
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0x240]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x224], ebx
je 0x10801e6
mov ecx, esi
call fcn.0107cd20
push 5
push 4
push esi
call fcn.0107bd1c
call fcn.0120da49
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
push dword [ebp + 0x14]
push dword [ebp - 0x244]
call fcn.0107fb70
mov dword [ebp - 0x22c], eax
call fcn.0120da76
push esi
call fcn.0107bd69
push dword [0x12d2454]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x12d2398
call fcn.0116c223
call dword [sym.imp.ole32.dll_OleUninitialize]
call fcn.0107c18a
push 0x1e
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [0x12ceab0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x22c]
mov dword [0x12ceab0], ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.0115fe73
leave
ret 0x10