Function at 0x10136b4
Capabilities:
Accept command line arguments
Check mutex and terminate process on windows
Check mutex on windows
Get system information on windows
Query environment variable
Set environment variable
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x474
mov eax, dword [0x102c22c]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push 0xd
mov dword [ebp - 4], eax
xor esi, esi
pop ecx
xor eax, eax
mov dword [ebp - 0x45c], esi
lea edi, [ebp - 0x458]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
push 0x103e100
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x424], 0xa
mov dword [0x106f76c], eax
mov dword [0x103e484], esi
mov dword [0x103f930], esi
mov dword [0x103e100], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push 0x103e460
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push ebx
call fcn.0100c07a
cmp dword [0x102c8e8], esi
jne 0x101373c
cmp dword [0x102c8ec], esi
je 0x10137a4
push ebx
call dword [sym.imp.msvcrt.dll__strdup]
cmp eax, esi
pop ecx
je 0x101374e
mov dword [ebp - 0x420], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
call edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1013759
sub eax, edx
mov ebx, eax
call edi
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov edi, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call edi
push eax
call dword [sym.imp.ntdll.dll_wcslen]
mov ebx, eax
pop ecx
shl ebx, 1
call edi
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov edi, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push dword [0x102c8d0]
call fcn.01019570
cmp dword [0x102c8e8], esi
mov dword [0x106f764], esi
mov dword [0x103ec30], esi
mov dword [0x103f6ec], 1
je 0x1013819
push 0x104
mov edi, 0x103e5c0
push edi
push 0xf00f
push esi
mov byte [0x103e5c0], 0
mov byte [0x107f8a0], 0
call fcn.0100ce22
push 0xfffa
mov ebx, 0x107f8a0
push ebx
push 0xf407
push esi
call fcn.0100ce22
push 0x10040
push edi
push ebx
push esi
call fcn.01017b08
jmp 0x10138f7
cmp dword [0x102c91c], esi
mov edi, 0x104
mov ebx, 0x107f8a0
je 0x10138fe
call fcn.0100bdb1
test eax, eax
je 0x101384d
mov esi, 0x1004b4c
mov edi, 0x103f3e0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor esi, esi
mov edi, 0x104
cmp dword [0x102c920], esi
je 0x10138ac
push edi
lea eax, [ebp - 0x108]
push eax
push 0xf0e3
push esi
mov byte [ebp - 0x108], 0
mov byte [0x107f8a0], 0
call fcn.0100e2c5
push 0xfffa
push ebx
push 0xf015
push esi
call fcn.0100e2c5
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x103f3e0
push eax
push 4
push 0x1003088
push esi
push 1
push 0xc00e1116
call fcn.01014b89
add esp, 0x24
push edi
push 0x103e5c0
push 0xf00f
push esi
mov byte [0x103e5c0], 0
mov byte [0x107f8a0], 0
call fcn.0100ce22
push 0xfffa
push ebx
push 0xf015
push esi
call fcn.0100ce22
push 0x10041
push 0x103e5c0
push ebx
push esi
call fcn.01017b08
cmp eax, 2
jne 0x10138fe
call fcn.0100bf7f
xor eax, eax
jmp 0x1014241
push 0x1004b48
push 0x1004b30
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push esi
push esi
push 0x1001970
mov dword [0x103f604], esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x1013932
xor eax, eax
inc eax
mov dword [0x102dc54], eax
mov dword [0x102c8e4], eax
cmp dword [0x102dc5c], esi
jne 0x1013978
push 0x1004b14
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp dword [0x102dc54], esi
mov dword [0x102c8fc], eax
jne 0x1013978
cmp dword [0x102de54], esi
jne 0x1013978
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1013978
mov dword [ebp - 0x418], 0xf205
jmp 0x1013f6f
call fcn.0101af75
call fcn.01014f35
test eax, eax
jne 0x1013995
mov dword [ebp - 0x418], 0xf004
jmp 0x1013f6f
push 0x1000
call fcn.010165c0
mov dword [0x102c900], eax
call fcn.01010990
cmp eax, esi
mov dword [ebp - 0x418], eax
jne 0x1013f6f
lea eax, [ebp - 0x428]
push eax
push 0x1004b04
push 0x10019d4
push dword [0x103f3c4]
call fcn.01015053
lea eax, [ebp - 0x42c]
push eax
push 0x1004b04
push 0x10019d4
push dword [0x103f3c4]
call fcn.01015053
push 0x1004acc
push ebx
call dword [sym.imp.ntdll.dll_sprintf]
mov eax, dword [ebp - 0x420]
pop ecx
pop ecx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1013a06
sub eax, ecx
add eax, 2
push eax
call dword [sym.imp.msvcrt.dll_malloc]
cmp eax, esi
pop ecx
mov dword [ebp - 0x41c], eax
je 0x1013a91
mov eax, dword [ebp - 0x420]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1013a2d
sub eax, edx
inc eax
push eax
push dword [ebp - 0x41c]
push dword [0x1004bbc]
push dword [ebp - 0x420]
call fcn.01019237
test eax, eax
je 0x1013a71
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1013a58
sub eax, edx
mov ecx, 0xfffb
sub ecx, eax
push ecx
push dword [ebp - 0x41c]
jmp 0x1013a78
push 4
push 0x1004ac4
push ebx
call dword [sym.imp.ntdll.dll_strncat]
add esp, 0xc
push dword [ebp - 0x41c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
jmp 0x1013aa2
push 4
push 0x1004ac4
push ebx
call dword [sym.imp.ntdll.dll_strncat]
add esp, 0xc
push ebx
call fcn.01015c42
push 0x103ec40
push 0x1004a88
call fcn.01015c5a
cmp dword [0x102dc54], esi
pop ecx
pop ecx
je 0x1013acb
push 0x1004a54
call fcn.01015c42
cmp dword [0x102c900], esi
je 0x1013f51
mov eax, dword [ebp - 0x420]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1013ae0
sub eax, edx
push eax
push dword [ebp - 0x420]
push 0x1004a3c
call fcn.0101661a
cmp dword [0x102c8d0], esi
je 0x1013b0c
mov dword [ebp - 0x424], 5
cmp dword [0x102c8dc], esi
je 0x1013b1a
mov dword [ebp - 0x424], esi
push 4
lea eax, [ebp - 0x424]
push eax
push 0x1004a2c
call fcn.0101661a
mov eax, dword [0x103e484]
cmp eax, esi
je 0x1013bb5
push 0x1004a10
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, esi
je 0x1013bb5
push 0x18
lea ecx, [ebp - 0x474]
push ecx
mov dword [ebp - 0x460], fcn.01015aaf
mov dword [ebp - 0x474], fcn.0101661a
mov dword [ebp - 0x470], fcn.0101663e
mov dword [ebp - 0x46c], 0x10166d4
mov dword [ebp - 0x468], fcn.010166f8
mov dword [ebp - 0x464], 0x101678d
call eax
cmp eax, esi
mov dword [ebp - 0x418], eax
je 0x1013bb5
push eax
push 0x10049d4
call fcn.01015c5a
pop ecx
pop ecx
push dword [ebp - 0x418]
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1013f63
push edi
lea eax, [ebp - 0x20c]
push eax
call fcn.010223f6
test eax, eax
je 0x1013bd1
push 0x1022bfa
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x10049b8
push dword [0x103f3c4]
mov word [0x103ed60], si
call fcn.010273ec
cmp eax, esi
je 0x1013c32
cmp eax, 0xffffffff
je 0x1013c46
push edi
push 0x103f500
push 0x10049a8
call fcn.01018155
test eax, eax
je 0x1013c55
push edi
lea eax, [ebp - 0x414]
push eax
push 0xffffffffffffffff
push 0x103f500
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x414]
push eax
push dword [0x103f3c4]
call fcn.010273ec
cmp eax, esi
jne 0x1013c41
mov dword [ebp - 0x418], 0xf0f4
jmp 0x1013f6f
cmp eax, 0xffffffff
jne 0x1013c55
mov dword [ebp - 0x418], 0x4c7
jmp 0x1013f6f
mov eax, dword [0x103e7e4]
push 0x102c8cc
push 0x103f930
push 0x1004994
push dword [0x103e484]
mov dword [0x103f934], eax
mov eax, dword [0x102c8d0]
mov dword [0x103f930], 0x103ec40
mov dword [0x103f938], eax
call fcn.01017e79
cmp eax, esi
mov dword [ebp - 0x418], eax
je 0x1013ca2
push eax
push 0x1004960
jmp 0x1013d2a
mov dword [ebp - 0x458], esi
mov dword [ebp - 0x450], 1
mov dword [ebp - 0x45c], esi
call fcn.01020e55
mov dword [0x106e3c8], eax
call fcn.01020e55
mov dword [0x103f950], eax
call fcn.01020e55
push dword [0x103f3c4]
mov dword [0x103f948], eax
mov dword [0x106e3c4], esi
call fcn.0100b5c2
cmp dword [0x103f924], esi
je 0x1013d06
push esi
push esi
push dword [0x103f3c4]
call fcn.010204cd
test eax, eax
jne 0x1013d06
mov dword [0x103f924], esi
cmp dword [0x102c8dc], esi
lea eax, [ebp - 0x45c]
push eax
je 0x1013d7e
call fcn.01011160
cmp eax, esi
mov dword [ebp - 0x418], eax
je 0x1013d36
push eax
push 0x1004930
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x1013f63
lea eax, [ebp - 0x45c]
push eax
call fcn.01012a5c
cmp eax, 1
mov dword [ebp - 0x450], eax
jne 0x1013d72
lea eax, [ebp - 0x45c]
push eax
call fcn.01011a04
cmp eax, esi
mov dword [ebp - 0x418], eax
je 0x1013d89
push eax
push 0x1004900
call fcn.01015c5a
pop ecx
pop ecx
jmp 0x1013d89
push 0x10048e4
call fcn.01015c5a
jmp 0x1013d6f
call fcn.010133cf
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x450], 1
jne 0x1013f63
cmp dword [ebp - 0x42c], esi
je 0x1013dcb
cmp dword [0x102c8dc], esi
je 0x1013dcb
cmp dword [0x102c924], esi
je 0x1013dcb
lea eax, [ebp - 0x45c]
push eax
call fcn.010133cf
cmp eax, esi
je 0x1013dcb
push eax
push 0x10048ac
call fcn.01015c5a
pop ecx
pop ecx
mov eax, dword [0x106f764]
cmp eax, esi
je 0x1013de9
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 1
push dword [0x106e3d4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x102c8cc
push 0x103ec40
push 1
push 0x1004880
push dword [0x103f3c4]
call fcn.01016f90
test eax, eax
jne 0x1013e1e
push 0x1004830
call fcn.01015c42
push 0xf40a
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x102c8cc
push 0x103f930
push 0x1004818
push dword [0x103e484]
call fcn.01017e79
cmp eax, esi
je 0x1013e49
push eax
push 0x10047e4
call fcn.01015c5a
pop ecx
pop ecx
mov eax, dword [0x102c8fc]
cmp eax, esi
je 0x1013e5f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x102c8fc], esi
push dword [0x102c8e0]
push dword [ebp - 0x42c]
push 0x10047bc
call fcn.01015c5a
add esp, 0xc
cmp dword [0x102c8f4], 1
jne 0x1013e99
push dword [ebp - 0x43c]
push 0x1004770
call fcn.01015c5a
pop ecx
pop ecx
mov dword [ebp - 0x43c], esi
push dword [0x102c900]
call fcn.01016554
call fcn.01014dbf
cmp dword [ebp - 0x42c], esi
je 0x1013f45
cmp dword [0x102c8e0], esi
jne 0x1013f45
push 0x1004738
push dword [0x103f3c4]
call fcn.010231cf
push 0x103f620
push 1
push dword [0x103e7e4]
push dword [0x102c8d0]
push dword [0x102c8d4]
push 1
call fcn.0101d036
test eax, eax
jne 0x1013f45
push edi
push 0x103e5c0
push 0xf011
push esi
mov byte [0x103e5c0], al
mov byte [0x107f8a0], al
call fcn.0100ce22
push 0xfffa
push ebx
push 0xf00a
push esi
call fcn.0100ce22
push ebx
call fcn.01015c42
cmp dword [0x102c8d0], esi
jne 0x1013f45
push 0x11010
push 0x103e5c0
push ebx
push dword [ebp - 0x45c]
call fcn.01017b08
push dword [ebp - 0x43c]
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x1004704
call fcn.01015c74
pop ecx
push 8
call fcn.0100d556
cmp dword [ebp - 0x418], esi
je 0x101423b
cmp dword [0x103f930], esi
je 0x1013f91
push 0x102c8cc
push 0x103f930
push 0x10046ec
push dword [0x103e484]
call fcn.01017e79
mov eax, dword [0x102c8fc]
cmp eax, esi
je 0x1013fa7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x102c8fc], esi
cmp dword [ebp - 0x418], 0x4c7
jne 0x1013fbd
mov dword [ebp - 0x418], 0xf00d
push edi
push 0x103e5c0
push 0xf011
push esi
mov byte [0x103e5c0], 0
mov byte [0x107f8a0], 0
call fcn.0100e2c5
push edi
lea eax, [ebp - 0x108]
push eax
push 0xf0e3
push esi
call fcn.0100e2c5
push 0xfffa
push ebx
push dword [ebp - 0x418]
push esi
call fcn.0100e2c5
test eax, eax
mov edi, 0x106e760
jne 0x101410e
push esi
push 0xfffa
push ebx
push esi
push dword [ebp - 0x418]
push esi
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x10140f4
cmp byte [0x102dc68], 0
mov eax, 0x103dfe0
je 0x1014090
cmp byte [0x103dfe0], 0
jne 0x101404d
lea eax, [ebp - 0x108]
push 0x102dc68
push eax
push 0x1003bd8
push 0x1000
push edi
call dword [sym.imp.ntdll.dll__snprintf]
push ebx
push 0x103f3e0
push edi
push 3
push 0x103f700
push dword [0x103e490]
mov byte [0x106f75f], 0
push 1
push 0xc00e1117
call fcn.01014b89
add esp, 0x34
jmp 0x10140c2
cmp byte [0x103dfe0], 0
jne 0x101409f
lea eax, [ebp - 0x108]
push ebx
push 0x103f3e0
push eax
push 3
push 0x103f700
push dword [0x103e490]
push 1
push 0xc00e1117
call fcn.01014b89
add esp, 0x20
cmp dword [0x102c8d0], esi
jne 0x10140f4
push 0x10017c8
push 0x103e5c0
call dword [sym.imp.ntdll.dll__strcmpi]
test eax, eax
pop ecx
pop ecx
push 0x11010
jne 0x10140e8
push esi
jmp 0x10140ed
push 0x103e5c0
push ebx
push esi
call fcn.01017a37
push 0xfffa
push ebx
push 0xf40a
push esi
mov byte [0x107f8a0], 0
call fcn.0100e2c5
jmp 0x1014155
cmp dword [ebp - 0x418], 0xf003
jne 0x1014155
push ebx
call dword [sym.imp.msvcrt.dll__strdup]
cmp eax, esi
pop ecx
mov dword [ebp - 0x41c], eax
je 0x101414b
push dword [0x103f940]
push eax
push ebx
call dword [sym.imp.ntdll.dll_sprintf]
push dword [ebp - 0x41c]
call dword [sym.imp.msvcrt.dll_free]
add esp, 0x10
jmp 0x1014155
push 0x10046bc
call fcn.01015c42
cmp dword [0x103ec38], esi
je 0x10141f5
cmp byte [0x102dc68], 0
je 0x10141bb
cmp byte [0x103dfe0], 0
mov eax, 0x103dfe0
jne 0x101417e
lea eax, [ebp - 0x108]
push 0x102dc68
push eax
push 0x1003bd8
push 0x1000
push edi
call dword [sym.imp.ntdll.dll__snprintf]
push ebx
push edi
push 0x103f3e0
push edi
push 4
push 0x103f700
push dword [0x103e490]
push 1
push 0xc00e1118
call fcn.01014b89
add esp, 0x38
jmp 0x10141f5
mov al, byte [0x103dfe0]
test al, al
mov ecx, 0x103dfe0
jne 0x101421c
lea ecx, [ebp - 0x108]
mov eax, ecx
push ebx
push ecx
push 0x103f3e0
push eax
push 4
push 0x103f700
push dword [0x103e490]
push 1
push 0xc00e1118
call fcn.01014b89
add esp, 0x24
cmp dword [0x102c8d0], esi
jne 0x101422b
push 0x10017c8
mov edi, 0x103e5c0
push edi
call dword [sym.imp.ntdll.dll__strcmpi]
test eax, eax
pop ecx
pop ecx
push 0x11010
jne 0x1014223
push esi
jmp 0x1014224
mov eax, 0x103dfe0
jmp 0x10141d1
push edi
push ebx
push esi
call fcn.01017a37
push ebx
call fcn.01015c42
mov dword [ebp - 0x418], 0x643
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0101439a
leave
ret 0x10