Function at 0x437420
Capabilities:
Check if file exists
Check mutex on windows
Create thread
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x6a56e8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x13c], esp
mov eax, dword [ebp + 0x10]
push eax
call fcn.0040afd0
call fcn.00436e40
add esp, 4
movzx ecx, byte [0x6adde0]
test ecx, ecx
je 0x437465
call fcn.00405440
xor eax, eax
jmp 0x4380c1
movzx edx, byte [0x6addd6]
test edx, edx
jne 0x437483
movzx eax, byte [0x6addd5]
test eax, eax
jne 0x437483
or eax, 0xffffffff
jmp 0x4380c1
push str.GlobalSpUpdate
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
jne 0x4374a8
xor eax, eax
jmp 0x4380c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x437597
push 0x686100
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x437512
movzx ecx, byte [0x6addd7]
test ecx, ecx
jne 0x437506
push 0
push 0xf020
push 0x112
mov edx, dword [ebp - 0x78]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0xf120
push 0x112
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x4380c1
movzx ecx, byte [0x6addd6]
test ecx, ecx
je 0x437524
xor eax, eax
jmp 0x4380c1
push 0xc
lea ecx, [ebp - 0x1c]
call fcn.00405ed0
lea ecx, [ebp - 0x1c]
call fcn.0040a020
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x11c], eax
lea edx, [ebp - 0x11c]
push edx
lea ecx, [ebp - 0x1c]
call fcn.004380e0
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x164], esp
lea eax, [ebp - 0x1c]
push eax
call fcn.00438110
lea ecx, [ebp - 0x120]
push ecx
call fcn.004080c0
add esp, 4
mov ecx, eax
call fcn.0040b0c0
push eax
call fcn.00409270
add esp, 0x10
lea ecx, [ebp - 0x120]
call fcn.0040af30
lea ecx, [ebp - 0x1c]
call fcn.0040a0a0
mov edx, dword [ebp + 8]
push edx
call fcn.00591dc0
add esp, 4
call fcn.00436af0
push 0x6ade18
call fcn.004180e0
add esp, 4
movzx eax, al
test eax, eax
jne 0x4376a3
mov byte [0x6adea9], 1
movzx ecx, byte [0x6addd6]
test ecx, ecx
je 0x4375df
or eax, 0xffffffff
jmp 0x4380c1
mov byte [0x6adee9], 1
lea ecx, [ebp - 0x34]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x34]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x43764b
push 0x7c8
mov ecx, dword [ebp - 0x7c]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x168], esp
push 0x6860f0
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x7c]
call fcn.00433560
mov dword [ebp - 0x98], eax
jmp 0x437655
mov dword [ebp - 0x98], 0
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x128], eax
push ecx
mov esi, esp
mov dword [ebp - 0x16c], esp
push 0x686128
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x128]
push edx
call fcn.004371a0
add esp, 0xc
jmp 0x4380ba
lea eax, [ebp - 0x12c]
push eax
call fcn.00407ef0
add esp, 4
mov ecx, eax
call fcn.0040b0c0
push eax
mov ecx, 0x6adeac
call fcn.00406610
lea ecx, [ebp - 0x12c]
call fcn.0040af30
push str.config.json
mov ecx, 0x6adeac
call fcn.0040a300
push 0x686140
call fcn.00403a00
add esp, 4
push eax
mov ecx, 0x6ade30
call fcn.00406770
call fcn.00407c00
movzx ecx, al
test ecx, ecx
jne 0x43770a
or eax, 0xffffffff
jmp 0x4380c1
call fcn.00437270
push 4
lea ecx, [ebp - 0x10]
call fcn.00405ed0
push str._tmp_
lea edx, [ebp - 0x130]
push edx
call fcn.00407ef0
add esp, 4
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040a830
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.0040af30
push 4
lea ecx, [ebp - 0xc]
call fcn.00405ed0
push str.softx86
call fcn.00403a00
add esp, 4
push eax
lea ecx, [ebp - 0xc]
call fcn.0040af50
push 4
lea ecx, [ebp - 8]
call fcn.00405ed0
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 8]
push eax
call fcn.0040a8f0
add esp, 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x170], esp
lea edx, [ebp - 8]
push edx
call fcn.0040b050
call fcn.00408910
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ecx
mov edx, dword [0x6ade90]
cmp edx, dword [ebp - 0xc8]
jne 0x4377c6
mov eax, dword [0x6ade94]
cmp eax, dword [ebp - 0xc4]
je 0x4377e8
lea ecx, [ebp - 8]
call fcn.0040b0c0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4377e8
lea ecx, [ebp - 8]
call fcn.0040b0c0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x686150
call fcn.00403a00
add esp, 4
push eax
push 0x6ade30
call fcn.00414c40
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x438078
call fcn.00438db0
movzx edx, byte [0x6addd6]
test edx, edx
je 0x437fa3
cmp dword [0x6ade98], 0
jne 0x437974
push 0x6adec4
push 0x6ade78
call fcn.004121c0
add esp, 8
movzx eax, al
test eax, eax
je 0x43787a
mov dword [ebp - 0x134], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0x134]
jmp 0x4380c1
movzx ecx, byte [0x6adedc]
test ecx, ecx
jne 0x4378b7
mov dword [ebp - 0x138], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0x138]
jmp 0x4380c1
lea ecx, [ebp - 0x40]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x40]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x43791c
push 0x7c8
mov ecx, dword [ebp - 0x80]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x174], esp
push 0x686174
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x80]
call fcn.00433560
mov dword [ebp - 0x9c], eax
jmp 0x437926
mov dword [ebp - 0x9c], 0
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xd0], eax
push ecx
mov esi, esp
mov dword [ebp - 0x178], esp
push 0x686168
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
call fcn.004371a0
add esp, 0xc
jmp 0x437f9e
cmp dword [0x6ade98], 3
jne 0x437b10
push 0x6adec4
push 0x6ade78
call fcn.004121c0
add esp, 8
movzx eax, al
test eax, eax
je 0x4379cc
mov dword [ebp - 0xd4], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xd4]
jmp 0x4380c1
movzx ecx, byte [0x6adedc]
test ecx, ecx
jne 0x437a09
mov dword [ebp - 0xd8], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xd8]
jmp 0x4380c1
call fcn.00438870
movzx edx, al
test edx, edx
je 0x437a42
mov dword [ebp - 0xdc], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xdc]
jmp 0x4380c1
call fcn.00438b10
lea ecx, [ebp - 0x4c]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x4c]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x437ab8
push 0x7c8
mov ecx, dword [ebp - 0x84]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x17c], esp
push 0x686190
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x84]
call fcn.00433560
mov dword [ebp - 0xa0], eax
jmp 0x437ac2
mov dword [ebp - 0xa0], 0
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], ecx
push ecx
mov esi, esp
mov dword [ebp - 0x180], esp
push 0x686184
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.004371a0
add esp, 0xc
jmp 0x437f9e
cmp dword [0x6ade98], 1
jne 0x437c54
push 0x6adec4
push 0x6ade78
call fcn.004121c0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x437b63
mov dword [ebp - 0xe8], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xe8]
jmp 0x4380c1
lea ecx, [ebp - 0x58]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x58]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x437bd4
push 0x7c8
mov ecx, dword [ebp - 0x88]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x160], esp
push 0x6861ac
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x88]
call fcn.00433560
mov dword [ebp - 0xa4], eax
jmp 0x437bde
mov dword [ebp - 0xa4], 0
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xa8], eax
push ecx
mov esi, esp
mov dword [ebp - 0x140], esp
push 0x6861a0
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xa8]
push edx
call fcn.004371a0
add esp, 0xc
push 0
mov ecx, dword [ebp - 0xa8]
call fcn.00417590
push eax
push ecx
mov eax, esp
mov dword [ebp - 0x144], esp
push eax
call fcn.00407ef0
add esp, 4
call fcn.00415fb0
add esp, 0xc
jmp 0x437f9e
cmp dword [0x6ade98], 2
jne 0x437f71
push 0x6adec4
push 0x6ade78
call fcn.004121c0
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x437cac
mov dword [ebp - 0xf0], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xf0]
jmp 0x4380c1
mov edx, dword [0x6ade90]
cmp edx, dword [ebp - 0xc8]
jne 0x437ccb
mov eax, dword [0x6ade94]
cmp eax, dword [ebp - 0xc4]
je 0x437ded
mov byte [0x6addd7], 1
lea ecx, [ebp - 0x64]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x64]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x437d43
push 0x7c8
mov ecx, dword [ebp - 0x8c]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x148], esp
push 0x6861c4
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x8c]
call fcn.00433560
mov dword [ebp - 0xac], eax
jmp 0x437d4d
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], edx
push ecx
mov esi, esp
mov dword [ebp - 0x14c], esp
push 0x6861bc
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.004371a0
add esp, 0xc
mov byte [0x6adee8], 0
push 1
push 0
push ecx
mov edx, esp
mov dword [ebp - 0x150], esp
push edx
call fcn.00407ef0
add esp, 4
call fcn.00415fb0
add esp, 0xc
mov dword [ebp - 0xfc], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0xfc]
jmp 0x4380c1
lea ecx, [ebp - 0x70]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x70]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x437e5e
push 0x7c8
mov ecx, dword [ebp - 0x90]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x154], esp
push 0x6861e0
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x90]
call fcn.00433560
mov dword [ebp - 0xb0], eax
jmp 0x437e68
mov dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0xbc], ecx
push ecx
mov esi, esp
mov dword [ebp - 0x158], esp
push 0x6861d4
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xbc]
push eax
call fcn.004371a0
add esp, 0xc
mov byte [0x6adee8], 1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x10
call fcn.00615b07
add esp, 4
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0
je 0x437eef
mov ecx, dword [ebp - 0xb4]
call fcn.004350b0
mov dword [ebp - 0xb8], eax
jmp 0x437ef9
mov dword [ebp - 0xb8], 0
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x74], ecx
lea edx, [ebp - 0x104]
push edx
call fcn.00407ef0
add esp, 4
push eax
mov ecx, dword [ebp - 0x74]
add ecx, 4
call fcn.0040af10
lea ecx, [ebp - 0x104]
call fcn.0040af30
push 0x686200
call fcn.00403a00
add esp, 4
push eax
mov ecx, dword [ebp - 0x74]
add ecx, 8
call fcn.0040aef0
mov ecx, dword [ebp - 0xbc]
call fcn.00417590
mov ecx, dword [ebp - 0x74]
mov dword [ecx], eax
push 0
push 0
mov edx, dword [ebp - 0x74]
push edx
push 0x416500
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x437f9e
mov dword [ebp - 0x108], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0x108]
jmp 0x4380c1
jmp 0x438076
movzx eax, byte [0x6addd5]
test eax, eax
je 0x438076
lea ecx, [ebp - 0x28]
call fcn.005982e0
push 2
lea ecx, [ebp - 0x28]
call fcn.005987d0
push 0x7c8
call fcn.00615b07
add esp, 4
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x438023
push 0x7c8
mov ecx, dword [ebp - 0x94]
call fcn.00405ed0
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x15c], esp
push str.SHOW_SOFTBOX
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.00404cb0
mov ecx, dword [ebp - 0x94]
call fcn.00433560
mov dword [ebp - 0xc0], eax
jmp 0x43802d
mov dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x110], edx
push ecx
mov esi, esp
mov dword [ebp - 0x184], esp
push str.OmhVGS
call fcn.00403a00
add esp, 4
push eax
mov ecx, esi
call fcn.0040afd0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004371a0
add esp, 0xc
jmp 0x4380a2
mov dword [ebp - 0x114], 0
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
mov eax, dword [ebp - 0x114]
jmp 0x4380c1
lea ecx, [ebp - 8]
call fcn.0040af30
lea ecx, [ebp - 0xc]
call fcn.0040af30
lea ecx, [ebp - 0x10]
call fcn.0040af30
call fcn.0058ebd0
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006158c5
mov esp, ebp
pop ebp
ret 0x10