Function at 0x4028c0
Capabilities:
Check if file exists
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433821
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x43ed54]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x44]
add ecx, 0x6c
call fcn.004138f0
test eax, eax
jg 0x402949
lea ecx, [ebp - 0x18]
call fcn.00405760
mov dword [ebp - 4], 0
push 0x89
lea ecx, [ebp - 0x18]
call fcn.00405ab0
push 0
push 0x435698
lea ecx, [ebp - 0x18]
call fcn.00405cb0
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00403d80
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00405740
mov eax, dword [ebp - 0x2c]
jmp 0x402bc1
lea ecx, [ebp - 0x10]
call fcn.00405760
mov dword [ebp - 4], 1
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x44]
add ecx, 0x70
call fcn.0040d980
lea ecx, [ebp - 0x10]
call fcn.00405ce0
movzx ecx, al
test ecx, ecx
je 0x4029d1
lea ecx, [ebp - 0x1c]
call fcn.00405760
mov byte [ebp - 4], 2
push 0x8a
lea ecx, [ebp - 0x1c]
call fcn.00405ab0
push 0
push 0x43569c
lea ecx, [ebp - 0x1c]
call fcn.00405cb0
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00403d80
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00405740
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00405740
mov eax, dword [ebp - 0x30]
jmp 0x402bc1
lea ecx, [ebp - 0x10]
call fcn.00405cb0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x402a3f
lea ecx, [ebp - 0x20]
call fcn.00405760
mov byte [ebp - 4], 3
push 0x90
lea ecx, [ebp - 0x20]
call fcn.00405ab0
push 0
push 0x4356a0
lea ecx, [ebp - 0x20]
call fcn.00405cb0
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00403d80
mov dword [ebp - 0x34], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00405740
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00405740
mov eax, dword [ebp - 0x34]
jmp 0x402bc1
mov edx, dword [ebp - 0x44]
cmp dword [edx + 0x90], 0
je 0x402ac1
push 0
mov ecx, dword [ebp - 0x44]
add ecx, 0x90
call fcn.00405cb0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x402ac1
lea ecx, [ebp - 0x24]
call fcn.00405760
mov byte [ebp - 4], 4
push 0x8b
lea ecx, [ebp - 0x24]
call fcn.00405ab0
push 0
push 0x4356a4
lea ecx, [ebp - 0x24]
call fcn.00405cb0
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00403d80
mov dword [ebp - 0x38], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00405740
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00405740
mov eax, dword [ebp - 0x38]
jmp 0x402bc1
mov ecx, dword [ebp - 0x44]
add ecx, 0x90
call fcn.00405710
lea ecx, [ebp - 0x14]
call fcn.0040aae0
mov byte [ebp - 4], 5
push 0x17
push 0
push 0x4356a8
lea ecx, [ebp - 0x14]
call fcn.00407b70
lea ecx, [ebp - 0x14]
call fcn.00405420
movzx eax, al
test eax, eax
je 0x402b5f
lea ecx, [ebp - 0x28]
call fcn.00405760
mov byte [ebp - 4], 6
push 0x88
lea ecx, [ebp - 0x28]
call fcn.00405ab0
push 0
push 0x4356dc
lea ecx, [ebp - 0x28]
call fcn.00405cb0
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00403d80
mov dword [ebp - 0x3c], 0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28]
call fcn.00405740
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.0040de50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00405740
mov eax, dword [ebp - 0x3c]
jmp 0x402bc1
mov ecx, dword [ebp - 0x44]
add ecx, 0x94
call fcn.00405cb0
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0
push 0
mov ecx, dword [ebp - 0x44]
push ecx
push 0x402ee0
push 0
push 0
call fcn.0041e06c
add esp, 0x18
push eax
mov ecx, dword [ebp - 0x44]
add ecx, 0x90
call fcn.00405670
mov dword [ebp - 0x40], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.0040de50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00405740
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0x10