Function at 0x43b765
Capabilities:
Accept command line arguments
Check mutex on windows
Create process on windows
Query environment variable
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68c
push edi
mov byte [ebp - 8], 1
mov eax, dword [0x445044]
xor eax, dword [0x44504c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x445250
lea ecx, [ebp - 0x10c]
push ecx
call fcn.0043ef1f
add esp, 0x10
lea edx, [ebp - 0x10c]
push edx
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x43b7b6
mov byte [ebp - 8], 0
mov eax, dword [ebp - 8]
and eax, 0xff
test eax, eax
je 0x43b912
mov ecx, dword [0x445048]
xor ecx, dword [0x445038]
xor ecx, dword [0x44506c]
and ecx, 0x20
test ecx, ecx
je 0x43b912
mov edx, dword [0x445064]
xor edx, dword [0x445068]
xor edx, dword [0x445044]
push edx
push 0x44525c
lea eax, [ebp - 0x10c]
push eax
call fcn.0043ef1f
add esp, 0xc
lea ecx, [ebp - 0x10c]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x43b912
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x43b912
mov edx, dword [0x445064]
xor edx, dword [0x445068]
xor edx, dword [0x445044]
push edx
push 0x445264
lea eax, [ebp - 0x10c]
push eax
call fcn.0043ef1f
add esp, 0xc
mov dword [ebp - 0x114], 0
jmp 0x43b876
mov ecx, dword [ebp - 0x114]
add ecx, 1
mov dword [ebp - 0x114], ecx
cmp dword [ebp - 0x114], 0x14
jge 0x43b8ac
lea edx, [ebp - 0x10c]
push edx
push 0x44526c
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x43b8a2
jmp 0x43b8ac
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x43b867
cmp dword [ebp - 0x110], 0
je 0x43b908
mov eax, dword [0x445064]
xor eax, dword [0x445068]
xor eax, dword [0x445044]
mov dword [ebp - 0x120], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call fcn.0043ef80
add esp, 4
add eax, 1
mov dword [ebp - 0x11c], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x118], eax
lea ecx, [ebp - 0x120]
push ecx
push 0
push 0x4a
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 1
jmp 0x43bc92
push 1
call fcn.0043bc97
add esp, 4
mov eax, dword [ebp - 8]
and eax, 0xff
test eax, eax
je 0x43baf9
mov ecx, dword [0x445048]
xor ecx, dword [0x445038]
xor ecx, dword [0x44506c]
and ecx, 0x40
test ecx, ecx
jne 0x43baf9
push 0x200
lea edx, [ebp - 0x320]
push edx
push 0x445278
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x43baf9
push 0x100
push 0x23
lea eax, [ebp - 0x320]
push eax
call fcn.0043ee90
add esp, 0xc
mov byte [ebp - 0x220], 0
mov dword [ebp - 0x424], 1
jmp 0x43b9a0
mov ecx, dword [ebp - 0x424]
add ecx, 1
mov dword [ebp - 0x424], ecx
cmp dword [ebp - 0x424], 0x40
jg 0x43b9da
mov edx, dword [ebp - 0x424]
push edx
push 0x445280
lea eax, [ebp - 0x420]
push eax
call fcn.0043ef1f
add esp, 0xc
lea ecx, [ebp - 0x320]
push ecx
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x43b991
mov eax, dword [0x445048]
xor eax, dword [0x445038]
xor eax, dword [0x44506c]
and eax, 0x10
test eax, eax
jne 0x43baf9
lea ecx, [ebp - 0x57c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov dl, byte [0x448278]
mov byte [ebp - 0x680], dl
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x67f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [0x44827c]
mov byte [ebp - 0x538], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x537]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
cmp dword [0x447f38], 1
jne 0x43ba74
cmp dword [ebp - 0x570], 0
jne 0x43ba74
lea ecx, [ebp - 0x680]
push ecx
call fcn.0043d047
add esp, 4
and eax, 0xff
test eax, eax
je 0x43ba74
lea edx, [ebp - 0x680]
mov dword [ebp - 0x570], edx
push 0x104
lea eax, [ebp - 0x538]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x43ba93
xor eax, eax
jmp 0x43bc92
lea ecx, [ebp - 0x434]
push ecx
lea edx, [ebp - 0x57c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
lea eax, [ebp - 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x43baef
mov dword [0x44816c], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x445288
push 0x448170
call fcn.0043ef1f
add esp, 0xc
xor eax, eax
jmp 0x43bc92
mov eax, 1
jmp 0x43bc92
mov ecx, dword [0x445048]
xor ecx, dword [0x445038]
xor ecx, dword [0x44506c]
and ecx, 0x10
test ecx, ecx
je 0x43bc4f
mov edx, dword [0x445044]
xor edx, dword [0x44504c]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4452a8
lea eax, [ebp - 0x10c]
push eax
call fcn.0043ef1f
add esp, 0x10
lea ecx, [ebp - 0x10c]
push ecx
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
jne 0x43bc4f
push 0xf
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov byte [ebp - 0x684], 0
push 0x4452b4
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x688], 0
je 0x43bbbc
push 0x4452c0
mov edx, dword [ebp - 0x688]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x68c], eax
cmp dword [ebp - 0x68c], 0
je 0x43bbbc
call dword [ebp - 0x68c]
test eax, eax
je 0x43bbbc
mov byte [ebp - 0x684], 1
mov eax, dword [ebp - 0x684]
and eax, 0xff
test eax, eax
je 0x43bbf9
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4452d4
lea ecx, [ebp - 0x10c]
push ecx
call fcn.0043ef1f
add esp, 0xc
lea edx, [ebp - 0x10c]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
jmp 0x43bc4f
xor eax, eax
cmp dword [0x447f38], 0
sete al
push eax
call fcn.0043d0d6
add esp, 4
and eax, 0xff
test eax, eax
jne 0x43bc3e
mov dword [0x44816c], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4452dc
push 0x448170
call fcn.0043ef1f
add esp, 0xc
xor eax, eax
jmp 0x43bc92
push 0
call fcn.0043bc97
add esp, 4
mov eax, 1
jmp 0x43bc92
call fcn.0043ab9b
mov dword [ebp - 4], eax
push 0
call fcn.0043bc97
add esp, 4
cmp dword [ebp - 4], 1
jne 0x43bc78
push 0x447f38
call dword [0x447f60]
add esp, 4
mov dword [ebp - 4], eax
call dword [0x447f5c]
push 0
push 0
mov ecx, dword [0x448164]
push ecx
call dword [0x448168]
mov eax, dword [ebp - 4]
pop edi
mov esp, ebp
pop ebp
ret