Function at 0x1083b44
Capabilities:
Accept command line arguments
Check mutex and terminate process on windows
Check mutex on windows
Print debug messages
Register raw input devices
Set current directory
Terminate process

Disassembly:
push 0x690
mov eax, 0x10bfc08
call fcn.010759c6
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor edi, edi
push edi
push edi
push edi
mov dword [ebp - 0x630], esi
mov dword [ebp - 0x62c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.01097f01
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
lea ecx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
cmp dx, di
jne 0x1083b80
sub eax, ecx
sar eax, 1
lea ebx, [eax + 0x18]
xor ecx, ecx
push 2
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.01075570
pop ecx
mov dword [ebp - 0x620], eax
cmp eax, edi
jne 0x1083bbc
xor al, al
call fcn.01075a1a
ret 8
push 0x102faf8
push ebx
push eax
call sub.msvcrt.dll_wcscpy_s
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
call dword [eax + 0x10]
push eax
push ebx
push dword [ebp - 0x620]
call sub.msvcrt.dll_wcscat_s
push 0x102fae0
push ebx
push dword [ebp - 0x620]
call sub.msvcrt.dll_wcscat_s
add esp, 0x18
push dword [ebp - 0x620]
push 1
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
push dword [ebp - 0x620]
mov ebx, eax
call fcn.0109c587
pop ecx
cmp ebx, edi
jne 0x1083c1b
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1083c71
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
push eax
call fcn.01097d93
pop ecx
mov esi, eax
push edi
push esi
call dword [sym.imp.USER32.dll_FindWindowW]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp ebx, edi
je 0x1083c14
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x1083c61
push 0xa
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
call dword [sym.imp.USER32.dll_BringWindowToTop]
push ebx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x1083c14
mov ebx, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call ebx
lea ecx, [ebp - 0x634]
push ecx
push eax
mov dword [ebp - 0x634], edi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x634], ecx
mov dword [ebp - 0x624], eax
mov dword [ebp - 0x628], ecx
jle 0x1083cfd
mov edx, dword [ebp - 0x624]
mov ecx, dword [edx + ecx*4]
mov eax, 0x102fad4
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x1083cd8
cmp dx, di
je 0x1083cd4
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x1083cd8
add ecx, 4
add eax, 4
cmp dx, di
jne 0x1083cb2
xor eax, eax
jmp 0x1083cdd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x1083ce8
mov byte [0x10d03d3], 1
mov ecx, dword [ebp - 0x628]
inc ecx
cmp ecx, dword [ebp - 0x634]
mov dword [ebp - 0x628], ecx
jl 0x1083ca4
push edi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_RegisterApplicationRestart]
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
mov byte [ebp - 0x619], 0
mov dword [ebp - 0x620], edi
lea eax, [ebp - 0x620]
push eax
push 0x102f2c4
push 1
push edi
push 0x102fac4
mov dword [ebp - 4], edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, edi
jl 0x1083dc3
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x618]
push eax
push edi
push edi
push 0x102f1e0
call sub.SHELL32.dll_SHGetFolderPathEx
cmp eax, edi
jl 0x1083dc3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
push eax
push ebx
lea eax, [ebp - 0x618]
push eax
call fcn.010837c7
cmp eax, edi
jl 0x1083dc3
lea eax, [ebp - 0x618]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [0x10d1164], eax
cmp eax, edi
je 0x1083dc3
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x1083dc3
mov eax, dword [ebp - 0x620]
mov ecx, dword [eax]
lea edx, [ebp - 0x624]
push edx
push dword [0x10d1164]
push eax
call dword [ecx + 0x18]
cmp eax, edi
jl 0x1083dc3
cmp dword [ebp - 0x624], edi
je 0x1083dc3
mov byte [ebp - 0x619], 1
mov eax, dword [ebp - 0x620]
or dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x1083dd7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [ebp - 0x619], 0
jne 0x1083de7
push 5
call fcn.0108399f
push 4
call fcn.01075501
pop ecx
cmp eax, edi
je 0x1083dfc
mov dword [eax], edi
mov dword [0x10d1180], eax
jmp 0x1083e02
mov dword [0x10d1180], edi
push 0x1082f3c
call dword [sym.imp.msvcrt.dll_int____cdecl___unsigned_int____cdecl__set_new_handler_int____cdecl___unsigned_int__]
push 1
call dword [sym.imp.msvcrt.dll_int___cdecl__set_new_mode_int_]
pop ecx
pop ecx
mov dword [0x10d1178], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
push eax
call fcn.01097d93
mov dword [0x10d1160], eax
mov dword [esp], 0x200
lea eax, [ebp - 0x410]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [eax - 1]
jmp 0x1083e5e
movzx edx, word [ebp + ecx*2 - 0x410]
cmp dx, 0x2f
je 0x1083e64
cmp dx, 0x5c
je 0x1083e64
dec ecx
cmp ecx, eax
jbe 0x1083e49
jmp 0x1083e6e
xor eax, eax
mov word [ebp + ecx*2 - 0x410], ax
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x102fab0
mov ecx, 0x10d1190
call fcn.01094ebc
push 0x10
pop ebx
push ebx
call fcn.01075501
pop ecx
mov dword [ebp - 0x624], eax
mov dword [ebp - 4], 1
cmp eax, edi
je 0x1083eae
mov ecx, eax
call fcn.0107bf35
jmp 0x1083eb0
xor eax, eax
or dword [ebp - 4], 0xffffffff
push eax
mov dword [0x10d03b8], eax
call fcn.01096a72
push dword [0x10d1160]
call fcn.010633be
push 0x102fa80
mov esi, 0x102eb64
push esi
push 0x469
push ebx
call fcn.0109642f
add esp, 0x10
call fcn.0108492e
test al, al
jne 0x1083f06
push 0x102fa54
push esi
push 0x46c
push ebx
call fcn.0109642f
add esp, 0x10
push edi
jmp 0x1083de2
push dword [0x10d1160]
push 0x102fa18
push esi
push 0x472
push ebx
call fcn.0109642f
add esp, 0x14
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0x410]
push eax
push 0x102f9e0
push esi
push 0x476
push ebx
call fcn.0109642f
push 0x102f9bc
push esi
push 0x47a
push ebx
call fcn.0109642f
xor eax, eax
inc eax
add esp, 0x24
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x66c], eax
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x674]
push eax
push 0x10d115c
mov dword [ebp - 0x670], edi
mov dword [ebp - 0x668], edi
call sub.gdiplus.dll_GdiplusStartup
lea eax, [ebp - 0x65c]
push eax
lea eax, [ebp - 0x658]
push eax
mov dword [ebp - 0x658], edi
mov dword [ebp - 0x65c], edi
call fcn.0107fa82
push 0x1440
call fcn.01075501
pop ecx
mov dword [ebp - 0x624], eax
mov dword [ebp - 4], 2
cmp eax, edi
je 0x1083fd1
push edi
mov ecx, eax
call fcn.0109cd1e
jmp 0x1083fd3
xor eax, eax
mov ecx, dword [ebp - 0x630]
or dword [ebp - 4], 0xffffffff
mov dword [0x10d1184], eax
mov eax, dword [ecx]
call dword [eax]
push eax
lea ecx, [ebp - 0x640]
call fcn.01094301
movzx eax, byte [0x10d14b8]
mov ecx, dword [0x10d1184]
push 0x102f9ac
push eax
lea eax, [ebp - 0x640]
push eax
mov dword [ebp - 4], 3
call fcn.0109ce44
neg al
sbb al, al
or dword [ebp - 4], 0xffffffff
inc al
lea ecx, [ebp - 0x640]
mov byte [ebp - 0x619], al
call fcn.0109449c
cmp byte [ebp - 0x619], 0
je 0x10840af
lea ecx, [ebp - 0x640]
call fcn.0109429a
push 0x37c
lea ecx, [ebp - 0x69c]
mov dword [ebp - 4], 4
call fcn.010943ca
mov ecx, dword [ebp - 0x630]
mov esi, dword [eax + 8]
mov eax, dword [ecx]
mov byte [ebp - 4], 5
call dword [eax]
push eax
lea eax, [ebp - 0x640]
push esi
push eax
call fcn.010946c6
add esp, 0xc
lea ecx, [ebp - 0x69c]
mov byte [ebp - 4], 4
call fcn.0109449c
push 1
push dword [ebp - 0x638]
push edi
push 0xfffe
push 1
push edi
push 0x385
call fcn.0109819c
jmp 0x1083f00
call fcn.01082523
test al, al
jne 0x10840c8
push 0x102f97c
push esi
push 0x4ae
jmp 0x1083ef7
cmp byte [0x10d03d3], 0
je 0x1084161
push 0x102f94c
push esi
push 0x4bb
push ebx
call fcn.0109642f
add esp, 0x10
push edi
call fcn.01099887
cmp byte [0x10d03d3], 0
je 0x1084161
push 0x102f8f0
push esi
push 0x4c4
push ebx
call fcn.0109642f
add esp, 0x10
push 0xc
pop eax
mov word [ebp - 0x640], ax
xor eax, eax
inc eax
mov word [ebp - 0x63e], ax
mov eax, dword [0x10d1168]
push 0xc
mov dword [ebp - 0x638], eax
push 1
lea eax, [ebp - 0x640]
push eax
mov dword [ebp - 0x63c], edi
call dword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x1084161
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x102f8b4
push esi
push 0x4cf
push ebx
call fcn.0109642f
add esp, 0x14
push 0x102f888
push esi
push 0x4d5
push ebx
call fcn.0109642f
add esp, 0x10
push 0x108320d
push 2
call fcn.010850ae
push 0x1083251
push 4
call fcn.010850ae
push 0x1083277
push 5
call fcn.010850ae
push 0x108322f
push 3
call fcn.010850ae
push 0x1083299
push 6
call fcn.010850ae
push 0x10832bb
push 7
call fcn.010850ae
push 0x10832dd
push 8
call fcn.010850ae
push 0x1083303
push 9
call fcn.010850ae
push 0x1083329
push 0xa
call fcn.010850ae
push 0x108334f
push 0xb
call fcn.010850ae
push 0x1083371
push 1
call fcn.010850ae
push 0x10833b9
push 0xd
call fcn.010850ae
push 0x1083393
push 0xc
call fcn.010850ae
push 0x10833db
push 0xe
call fcn.010850ae
push 0x10833fd
push 0xf
call fcn.010850ae
push 0x108341f
push ebx
call fcn.010850ae
push 0x1083449
push 0x11
call fcn.010850ae
push 0x108346b
push 0x12
call fcn.010850ae
push 0x108348d
push 0x13
call fcn.010850ae
push 0x10834af
push 0x14
call fcn.010850ae
push 0x10834d1
push 0x15
call fcn.010850ae
push 0x10834f3
push 0x16
call fcn.010850ae
push 0x10831a7
push 0x17
call fcn.010850ae
push 0x10831c9
push 0x18
call fcn.010850ae
push 0x1083515
push 0x19
call fcn.010850ae
push 0x1083537
push 0x1a
call fcn.010850ae
push 0x1083559
push 0x1b
call fcn.010850ae
push 0x108357b
push 0x1c
call fcn.010850ae
push 0x108359d
push 0x1d
call fcn.010850ae
push 0x10835c3
push 0x1e
call fcn.010850ae
push 0x108360f
push 0x1f
call fcn.010850ae
push 0x1083635
push 0x20
call fcn.010850ae
push 0x108365b
push 0x21
call fcn.010850ae
push 0x1083681
push 0x22
call fcn.010850ae
push 0x10831eb
push 0x25
call fcn.010850ae
push 0x10835e9
push 0x23
call fcn.010850ae
push 0x102f858
push esi
push 0x500
push ebx
call fcn.0109642f
add esp, 0x10
call fcn.01090ebd
call fcn.01085eaf
call fcn.01077b33
call fcn.0107be82
call fcn.0107f027
call fcn.010904a8
call fcn.0109033d
push 0x102f824
push esi
push 0x50b
push ebx
call fcn.0109642f
add esp, 0x10
call fcn.0109001d
test al, al
jne 0x1084388
push 0x102f7e0
push esi
push 0x50e
jmp 0x1083ef7
push fcn.01082e34
call fcn.01098032
push 0x102f7a4
push esi
push 0x518
push ebx
call fcn.0109642f
push 0x54
call fcn.01075501
add esp, 0x14
mov dword [ebp - 0x624], eax
mov dword [ebp - 4], 6
cmp eax, edi
je 0x10843c7
mov ecx, eax
call fcn.0108b014
jmp 0x10843c9
xor eax, eax
or dword [ebp - 4], 0xffffffff
push eax
mov dword [0x10d123c], eax
call fcn.01096a72
mov ecx, dword [0x10d123c]
call fcn.0108b05a
test al, al
jne 0x10843f7
push 0x102f758
push esi
push 0x51c
jmp 0x1083ef7
mov ecx, dword [0x10d1178]
xor eax, eax
lea edi, [ebp - 0x654]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [0x10d116c]
lea edx, [ebp - 0x64c]
push edx
lea edx, [ebp - 0x650]
mov dword [ebp - 0x654], eax
mov byte [ebp - 0x644], 0
mov dword [ebp - 0x648], 0x20
mov byte [ebp - 0x643], 0
mov eax, dword [ecx]
push edx
call dword [eax + 0xc]
cmp byte [0x10d1158], 0
je 0x1084465
mov eax, dword [ebp - 0x650]
add eax, eax
mov dword [ebp - 0x650], eax
mov eax, dword [ebp - 0x64c]
add eax, eax
mov dword [ebp - 0x64c], eax
push 0x102f720
push esi
push 0x533
push ebx
call fcn.0109642f
push 0x90
call fcn.01075501
add esp, 0x14
mov dword [ebp - 0x624], eax
xor edi, edi
mov dword [ebp - 4], 7
cmp eax, edi
je 0x108449f
mov ecx, eax
call fcn.010787b8
jmp 0x10844a1
xor eax, eax
or dword [ebp - 4], 0xffffffff
push eax
mov dword [0x10d0388], eax
call fcn.01096a72
mov ecx, dword [0x10d0388]
lea eax, [ebp - 0x654]
push eax
call fcn.0107a000
test al, al
jne 0x10844d6
push 0x102f6d8
push esi
push 0x537
jmp 0x1083ef7
push 0x102f6b0
push esi
push 0x53e
push ebx
call fcn.0109642f
push 0x28
call fcn.01075501
add esp, 0x14
mov dword [ebp - 0x624], eax
mov dword [ebp - 4], 8
cmp eax, edi
je 0x108450b
mov ecx, eax
call fcn.01084d18
jmp 0x108450d
xor eax, eax
or dword [ebp - 4], 0xffffffff
push eax
mov dword [0x10d11e8], eax
call fcn.01096a72
mov ecx, dword [0x10d11e8]
call fcn.01084bd7
test al, al
jne 0x108453b
push 0x102f678
push esi
push 0x542
jmp 0x1083ef7
push 0x102f630
push esi
push 0x54a
push ebx
call fcn.0109642f
push 0x80
call fcn.01075501
add esp, 0x14
mov dword [ebp - 0x624], eax
mov dword [ebp - 4], 9
cmp eax, edi
je 0x1084587
movzx ecx, byte [0x10d03d3]
push dword [ebp - 0x62c]
push ecx
push dword [0x10d1168]
mov ecx, eax
call fcn.0109d545
jmp 0x1084589
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov ecx, eax
mov dword [0x10d1170], eax
call fcn.0109d3ad
push 0x102f604
push esi
push 0x551
push ebx
call fcn.0109642f
push 0x34
call fcn.01075501
add esp, 0x14
cmp eax, edi
je 0x10845c1
mov ecx, eax
call fcn.01083950
jmp 0x10845c3
xor eax, eax
push eax
mov dword [0x10d11fc], eax
call fcn.01096a72
mov ecx, dword [0x10d11fc]
call fcn.0108492e
test al, al
jne 0x10845ed
push 0x102f5cc
push esi
push 0x555
jmp 0x1083ef7
push 0x102f5b0
push esi
push 0x55c
push ebx
call fcn.0109642f
mov ecx, dword [0x10d03b8]
add esp, 0x10
push 0x102f594
call fcn.0107c2f2
cmp eax, edi
je 0x10846d9
lea ecx, [ebp - 0x628]
push ecx
push 0x102f588
mov ecx, eax
call fcn.01095982
push dword [ebp - 0x628]
mov dword [ebp - 0x624], eax
push 0x102f568
push esi
push 0x567
push ebx
call fcn.0109642f
add esp, 0x14
mov dword [ebp - 0x620], edi
cmp dword [ebp - 0x628], edi
jbe 0x10846cb
mov eax, dword [ebp - 0x624]
mov ecx, dword [ebp - 0x620]
mov ecx, dword [eax + ecx*4]
call fcn.01094e3b
mov edi, eax
push edi
push 0x102f544
push esi
push 0x56c
push ebx
call fcn.0109642f
add esp, 0x14
push edi
call dword [sym.imp.GDI32.dll_AddFontResourceW]
push edi
test eax, eax
jne 0x10846ad
push 0x102f518
push esi
push 0x584
push ebx
call fcn.0109642f
push edi
call fcn.0109c587
add esp, 0x18
jmp 0x10846b7
mov ecx, 0x10c6848
call fcn.0105dab0
inc dword [ebp - 0x620]
mov eax, dword [ebp - 0x620]
cmp eax, dword [ebp - 0x628]
jb 0x108465a
push dword [ebp - 0x624]
call fcn.0109c587
pop ecx
jmp 0x10846ed
push 0x102f4f4
push esi
push 0x592
push ebx
call fcn.0109642f
add esp, 0x10
push 0x102f4a8
push esi
push 0x597
push ebx
call fcn.0109642f
add esp, 0x10
push 0
push dword [0x10d1168]
call sub.WTSAPI32.dll_WTSRegisterSessionNotification
mov ecx, dword [0x10d03b8]
push 0x102cd2c
call fcn.0107c2f2
push 0x102f438
push esi
push 0x59f
push ebx
mov dword [ebp - 0x62c], eax
mov byte [0x10d1177], 1
call fcn.0109642f
mov edi, dword [ebp - 0x630]
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
call dword [eax + 0x30]
test al, al
jne 0x108476b
push 0x102f3f0
push esi
push 0x5a2
push ebx
call fcn.0109642f
add esp, 0x10
push 0
jmp 0x1083de2
mov ecx, dword [ebp - 0x62c]
xor esi, esi
mov byte [0x10d1177], 0
cmp ecx, esi
je 0x1084794
push 0xffffffffffffffff
push 0x102f3c8
call fcn.01095057
test eax, eax
setg al
mov byte [0x10d1175], al
call fcn.0108374a
mov dword [0x10d117c], esi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
test eax, eax
je 0x10847c5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [0x10d117c], eax
push 0x10d115c
mov byte [0x10c6844], 0
call dword [ebp - 0x664]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x690]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x108483d
push esi
push esi
push esi
lea eax, [ebp - 0x690]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x1084844
mov eax, dword [0x10d117c]
cmp eax, esi
je 0x1084821
lea ecx, [ebp - 0x690]
push ecx
push eax
push dword [0x10d1168]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x10847d7
lea eax, [ebp - 0x690]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x690]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x10847d7
call fcn.01083040
jmp 0x10847d7
push dword [0x10d115c]
call dword [ebp - 0x660]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x48]
push esi
jmp 0x1083de2