Function at 0x419955
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
mov eax, 0x429e4b
call fcn.0041bd3c
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [esp + 0x44]
push edi
cmp dword [esi + 0x14], 0x10
jb 0x419974
mov eax, dword [esi]
jmp 0x419976
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x419c44
push dword [0x4371e0]
cmp dword [0x4371e4], 0x10
mov eax, 0x4371d0
cmovae eax, dword [0x4371d0]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.0041827a
mov byte [esp + 0x48], 0
cmp byte [esp + 0x48], 0
mov ebx, eax
mov dword [esp + 0x14], ebx
je 0x4199d1
push 0
push 0
call dword [sym.imp.USER32.dll_IsDialogMessageA]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
call fcn.0041a1da
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, 2
jae 0x4199fb
push str.Local11700
push 1
push 1
push 0
call ebp
test eax, eax
je 0x4199fb
push eax
call edi
call fcn.0041a1da
cmp eax, 2
jae 0x419a18
push str.Local11702
xor eax, eax
push eax
push eax
push eax
call ebp
test eax, eax
je 0x419a18
push eax
call edi
call fcn.0041a1da
cmp eax, 3
jae 0x419a31
push str.Local456
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call fcn.0041a1da
cmp eax, 2
jae 0x419a4e
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.0041a1da
cmp eax, 2
jae 0x419a6c
push str.Local11707
push 1
push 1
push 0
call ebp
test eax, eax
je 0x419a6c
push eax
call edi
call fcn.0041a1da
cmp eax, 2
jae 0x419a89
push str.Local11709
xor eax, eax
push eax
push eax
push eax
call ebp
test eax, eax
je 0x419a89
push eax
call edi
xor ecx, ecx
mov byte [esp + 0x48], cl
cmp byte [esp + 0x48], cl
je 0x419ac6
mov ebx, 0x244
push ecx
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x244
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
pop ecx
dec ebx
jne 0x419a9a
mov ebx, dword [esp + 0x14]
call fcn.0041a1da
cmp eax, 2
jae 0x419ae3
push str.Local11711
push 1
push 1
push ecx
call ebp
test eax, eax
je 0x419ae3
push eax
call edi
call fcn.0041a1da
cmp eax, 2
jae 0x419b01
push str.Local11712
push 1
push 1
push 0
call ebp
test eax, eax
je 0x419b01
push eax
call edi
cmp ebx, 0xffffffff
je 0x419c13
push ebx
push 0
lea eax, [esp + 0x24]
push eax
mov ecx, esi
call fcn.00409b2b
and dword [esp + 0x3c], 0
push dword [esp + 0x4c]
push eax
call fcn.00419955
mov bl, al
pop ecx
neg bl
pop ecx
sbb bl, bl
or dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.0040165f
inc bl
je 0x419b49
xor al, al
jmp 0x419c58
call fcn.0041a1da
xor ebx, ebx
cmp eax, 2
jae 0x419b66
push str.Local11714
push ebx
push ebx
push ebx
call ebp
test eax, eax
je 0x419b66
push eax
call edi
call fcn.0041a1da
push 2
pop ebp
cmp eax, ebp
jae 0x419b88
push ebp
call fcn.0041a976
pop ecx
test eax, eax
je 0x419b88
push eax
mov byte [eax + 1], 0xf7
call fcn.0040c4f8
pop ecx
call fcn.0041a1da
cmp eax, ebp
jae 0x419ba7
push ebp
call fcn.0041a976
pop ecx
test eax, eax
je 0x419ba7
push eax
mov byte [eax + 1], 0x5d
call fcn.0040c4f8
pop ecx
call fcn.0041a1da
cmp eax, ebp
jae 0x419bc6
push ebp
call fcn.0041a976
pop ecx
test eax, eax
je 0x419bc6
push eax
mov byte [eax + 1], 6
call fcn.0040c4f8
pop ecx
mov byte [esp + 0x48], bl
cmp byte [esp + 0x48], 0
je 0x419bf9
mov edi, 0xc4
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0xc4
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
dec edi
jne 0x419bd6
call fcn.0041a1da
cmp eax, ebp
jae 0x419c15
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x419c15
xor ebx, ebx
cmp dword [esi + 0x14], 0x10
jb 0x419c1f
mov eax, dword [esi]
jmp 0x419c21
mov eax, esi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x419b42
push esi
mov ecx, 0x43ad2c
call fcn.00419d17
mov eax, dword [esp + 0x4c]
mov byte [eax], bl
jmp 0x419c56
test eax, 0x410
je 0x419b42
mov ecx, dword [esp + 0x4c]
mov byte [ecx], 1
mov al, 1
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret