Function at 0x402220
Capabilities:
Check if file exists
Create directory
Create thread
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44fe39
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x46166c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x464938]
test eax, eax
jne 0x402295
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x402287
mov edi, eax
call fcn.00401050
jmp 0x402289
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
cmp byte [eax], 0
je 0x4022a3
mov word [eax + 0x82], 0x100
lea esi, [eax + 0x38]
mov eax, dword [esi]
push 0x454e50
push eax
call fcn.004306c1
add esp, 8
test eax, eax
je 0x4022c5
sub eax, dword [esi]
cmp eax, 1
je 0x402369
cmp dword [0x464938], 0
jne 0x4022fc
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x4022f5
mov edi, eax
call fcn.00401050
jmp 0x4022f7
xor eax, eax
mov dword [0x464938], eax
lea ecx, [ebp - 0x58]
call fcn.00401320
mov ebx, eax
mov dword [ebp - 4], 5
mov eax, dword [0x464938]
test eax, eax
jne 0x402341
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x40233a
mov edi, eax
call fcn.00401050
jmp 0x40233c
xor eax, eax
mov dword [0x464938], eax
lea esi, [eax + 0x38]
mov eax, dword [ebx]
push eax
or eax, 0xffffffff
call fcn.004148e0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x54]
cmp eax, ecx
je 0x402369
push eax
call fcn.0042f7b1
add esp, 4
mov eax, dword [0x464938]
test eax, eax
jne 0x4023a7
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x402399
mov edi, eax
call fcn.00401050
jmp 0x40239b
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov eax, dword [eax + 0x38]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x402404
mov eax, dword [0x464938]
test eax, eax
jne 0x4023f5
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 8
test eax, eax
je 0x4023e7
mov edi, eax
call fcn.00401050
jmp 0x4023e9
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov eax, dword [eax + 0x38]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [0x464938]
test eax, eax
jne 0x402442
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 9
test eax, eax
je 0x402434
mov edi, eax
call fcn.00401050
jmp 0x402436
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov eax, dword [eax + 0x38]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x402541
cmp dword [0x464938], eax
jne 0x40248a
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x402483
mov edi, eax
call fcn.00401050
jmp 0x402485
xor eax, eax
mov dword [0x464938], eax
lea ecx, [ebp - 0x58]
call fcn.00401320
mov ebx, eax
mov dword [ebp - 4], 0xb
mov eax, dword [0x464938]
test eax, eax
jne 0x4024cf
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x4024c8
mov edi, eax
call fcn.00401050
jmp 0x4024ca
xor eax, eax
mov dword [0x464938], eax
lea esi, [eax + 0x38]
mov eax, dword [ebx]
push eax
or eax, 0xffffffff
call fcn.004148e0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x54]
cmp eax, edx
je 0x4024f7
push eax
call fcn.0042f7b1
add esp, 4
mov eax, dword [0x464938]
test eax, eax
jne 0x402535
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0xd
test eax, eax
je 0x402527
mov edi, eax
call fcn.00401050
jmp 0x402529
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov eax, dword [eax + 0x38]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x464938]
test eax, eax
jne 0x40258c
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0xe
test eax, eax
je 0x40257e
mov edi, eax
call fcn.00401050
jmp 0x402580
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov ecx, dword [eax + 0x24]
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x4c
call fcn.0042f140
add esp, 4
test eax, eax
je 0x4025b3
lea ecx, [eax + 8]
mov dword [eax + 4], ecx
mov byte [ecx], 0
mov esi, eax
jmp 0x4025b5
xor esi, esi
mov eax, dword [0x464938]
test eax, eax
jne 0x4025f3
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0xf
test eax, eax
je 0x4025e5
mov edi, eax
call fcn.00401050
jmp 0x4025e7
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov dword [eax + 0x8c], esi
mov ecx, dword [eax + 0x24]
mov edx, esi
push 0x45496c
add eax, 0x38
mov dword [edx], ecx
call fcn.004147e0
cmp dword [0x464938], 0
jne 0x402644
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0x13
test eax, eax
je 0x40263d
mov edi, eax
call fcn.00401050
jmp 0x40263f
xor eax, eax
mov dword [0x464938], eax
lea ecx, [ebp - 0xa0]
call fcn.00401950
mov dword [ebp - 4], 0x14
mov esi, dword [eax]
mov eax, dword [0x464938]
test eax, eax
jne 0x40268c
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x402685
mov edi, eax
call fcn.00401050
jmp 0x402687
xor eax, eax
mov dword [0x464938], eax
push esi
add eax, 0x38
call fcn.004147e0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x9c]
cmp eax, edx
je 0x4026b5
push eax
call fcn.0042f7b1
add esp, 4
mov eax, dword [0x464938]
test eax, eax
jne 0x4026f3
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0x16
test eax, eax
je 0x4026e5
mov edi, eax
call fcn.00401050
jmp 0x4026e7
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov ebx, eax
test eax, eax
jne 0x40272e
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0x17
test eax, eax
je 0x402720
mov edi, eax
call fcn.00401050
jmp 0x402722
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov esi, dword [eax + 0x8c]
mov eax, dword [ebx + 0x38]
push eax
add esi, 4
or eax, 0xffffffff
call fcn.004148e0
push 0x18
call fcn.0042f140
add esp, 4
test eax, eax
je 0x402768
mov word [eax + 8], 0
mov dword [eax], vtable.ThreadCopy.0
mov dword [eax + 0x14], 0
mov esi, eax
jmp 0x40276a
xor esi, esi
mov eax, dword [0x464938]
test eax, eax
jne 0x4027a8
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0x18
test eax, eax
je 0x40279a
mov edi, eax
call fcn.00401050
jmp 0x40279c
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x464938], eax
mov dword [eax + 0x88], esi
cmp byte [esi + 8], 0
mov ecx, dword [eax + 0x8c]
jne 0x4027f2
lea eax, [esi + 0x10]
push eax
push 0
push esi
push 0x405200
push 0
push 0
mov dword [esi + 0xc], ecx
call fcn.0042f285
add esp, 0x18
mov dword [esi + 4], eax
test eax, eax
je 0x4027ed
cmp byte [esi + 9], 0
je 0x4027e9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esi + 8], 1
mov eax, dword [0x464938]
test eax, eax
jne 0x402824
push 0x2f0
call fcn.0042f140
add esp, 4
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], 0x1b
test eax, eax
je 0x40281d
mov edi, eax
call fcn.00401050
jmp 0x40281f
xor eax, eax
mov dword [0x464938], eax
mov ecx, dword [eax + 0x24]
push 0x43
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042ed1f
mov esp, ebp
pop ebp
ret