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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xda8
mov eax, dword [0x1005004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
push edi
push edi
push 0x100
mov dword [ebp - 0xda8], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0xda4], edi
call dword [sym.imp.KERNEL32.dll_SetThreadPreferredUILanguages]
push edi
push edi
push 1
push edi
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x100522c], eax
cmp esi, edi
jne 0x100346f
push 0x3fd
call fcn.01001b8b
xor eax, eax
pop ecx
inc eax
jmp 0x1003c34
cmp dword [ebp + 8], 2
jge 0x1003483
push dword [esi]
call fcn.01001cae
xor eax, eax
jmp 0x1003c34
and dword [0x1005228], edi
and dword [ebp - 0xda0], edi
xor edi, edi
xor eax, eax
inc edi
cmp dword [ebp + 8], edi
push ebx
mov word [ebp - 0xd4], ax
mov word [ebp - 0x584], ax
mov word [ebp - 0x784], ax
mov ebx, 0x104
jle 0x1003620
mov eax, dword [esi + edi*4]
movzx ecx, word [eax]
cmp cx, 0x2d
je 0x10034e5
cmp cx, 0x2f
je 0x10034e5
cmp word [ebp - 0x584], 0
jne 0x1003634
push eax
push ebx
lea eax, [ebp - 0x584]
jmp 0x100360c
movzx eax, word [eax + 2]
push eax
call dword [sym.imp.msvcrt.dll_tolower]
sub eax, 0x3f
pop ecx
je 0x100368b
sub eax, 0x24
je 0x1003681
sub eax, 4
je 0x10035f1
sub eax, 7
je 0x100354e
dec eax
dec eax
je 0x100353f
dec eax
je 0x1003530
sub eax, 4
jne 0x100363b
mov dword [ebp - 0xda0], 1
jmp 0x1003616
mov dword [0x1005228], 1
jmp 0x1003616
mov dword [0x1005640], 1
jmp 0x1003616
mov ecx, dword [esi + edi*4]
mov eax, ecx
lea ebx, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x1003556
sub eax, ebx
sar eax, 1
cmp eax, 2
jbe 0x10035bf
cmp eax, 8
jne 0x1003645
cmp word [ecx + 4], 0x3a
jne 0x1003645
movzx eax, word [ecx + 6]
push eax
call dword [sym.imp.msvcrt.dll_tolower]
pop ecx
cmp eax, 0x77
jne 0x1003645
mov eax, dword [esi + edi*4]
movzx eax, word [eax + 0xc]
cmp ax, 0x33
jne 0x10035ab
mov dword [ebp - 0xda4], 1
jmp 0x10035bf
cmp ax, 0x36
jne 0x1003645
mov dword [ebp - 0xda4], 2
inc edi
cmp edi, dword [ebp + 8]
jge 0x1003669
push dword [esi + edi*4]
xor ebx, ebx
push 0x100
lea eax, [ebp - 0x784]
inc ebx
push eax
mov dword [ebp - 0xda0], ebx
call fcn.01001960
test eax, eax
jl 0x1003650
mov ebx, 0x104
jmp 0x1003616
inc edi
cmp edi, dword [ebp + 8]
jge 0x1003669
push dword [esi + edi*4]
mov dword [ebp - 0xda0], 1
push 0x64
lea eax, [ebp - 0xd4]
push eax
call fcn.01001960
test eax, eax
jl 0x100367a
inc edi
cmp edi, dword [ebp + 8]
jl 0x10034b8
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x1003697
push 0x3f0
jmp 0x1003bc9
push 0x3ff
jmp 0x10036b3
push dword [esi + edi*4]
push 0x3fe
jmp 0x1003672
push dword [esi + edi*4 - 4]
push 0x41f
jmp 0x1003672
push 0x415
call fcn.01001b8b
pop ecx
push dword [esi]
call fcn.01001cae
mov eax, ebx
jmp 0x1003c33
push dword [esi + edi*4 - 4]
push 0x405
call fcn.01001b8b
pop ecx
jmp 0x10036b8
push 0x415
jmp 0x10036b3
call fcn.01001ccb
jmp 0x1003b9f
push dword [esi]
call fcn.01001cae
jmp 0x1003b9f
xor eax, eax
cmp dword [ebp - 0xda0], eax
jne 0x10036c5
cmp word [ebp - 0x584], ax
jne 0x1003767
push 0x400
call fcn.01001b8b
pop ecx
push dword [esi]
call fcn.01001cae
jmp 0x1003bcf
xor edi, edi
inc edi
cmp dword [ebp - 0xda0], edi
jne 0x10036f9
cmp word [ebp - 0x584], ax
jne 0x100376a
cmp word [ebp - 0xd4], ax
jne 0x1003702
cmp word [ebp - 0x784], ax
jne 0x1003702
push 0x400
jmp 0x10037c6
cmp word [ebp - 0x584], ax
jne 0x100376a
push ebx
xor eax, eax
mov esi, 0x1005020
push esi
mov word [0x1005020], ax
call fcn.0100181b
xor eax, eax
cmp ax, word [0x1005020]
je 0x1003755
push 0x1001530
push ebx
push esi
call fcn.0100199a
test eax, eax
jl 0x1003755
push 0x1001520
push ebx
push esi
call fcn.0100199a
test eax, eax
jl 0x1003755
push esi
push ebx
push 0x1005230
call fcn.01001960
test eax, eax
jge 0x10037d5
push 0x409
call fcn.01001b8b
pop ecx
mov eax, edi
jmp 0x1003c33
xor edi, edi
inc edi
cmp word [ebp - 0x582], 0x3a
je 0x10037a5
cmp word [ebp - 0x582], 0x5c
je 0x10037a5
push ebx
lea eax, [ebp - 0x584]
push eax
lea eax, [ebp - 0x37c]
push eax
call dword [sym.imp.msvcrt.dll__wfullpath]
add esp, 0xc
test eax, eax
jne 0x1003702
push 0x401
jmp 0x100375a
lea eax, [ebp - 0x584]
push eax
push ebx
lea eax, [ebp - 0x37c]
push eax
call fcn.01001960
test eax, eax
jge 0x1003702
push 0x415
call fcn.01001b8b
pop ecx
push dword [esi]
call fcn.01001cae
jmp 0x1003760
push esi
push ebx
mov edi, 0x1005438
push edi
call fcn.01001960
test eax, eax
jl 0x1003a93
mov ebx, 0x10012ac
push ebx
push 0x104
push edi
call fcn.0100199a
test eax, eax
jl 0x1003a93
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push esi
call edi
test eax, eax
jne 0x1003823
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x10038a7
cmp dword [ebp - 0xda0], 0
jne 0x10038bb
lea eax, [ebp - 0x37c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1003853
lea eax, [ebp - 0x37c]
push eax
push 0x417
jmp 0x1003a0a
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x37c]
push eax
call fcn.01003377
test eax, eax
je 0x1003bcf
cmp dword [ebp - 0xc], 0
je 0x1003a9d
push ebx
push 0x104
push esi
call fcn.0100199a
test eax, eax
jl 0x1003a93
push 0
push esi
call edi
test eax, eax
jne 0x1003a9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1003a9d
push eax
push esi
push 0x410
call fcn.01001b8b
add esp, 0xc
jmp 0x1003bcf
cmp dword [ebp - 0xda0], 1
jne 0x1003bd4
xor edi, edi
cmp word [ebp - 0xd4], di
je 0x10039b0
lea eax, [ebp - 0xd4]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x10038e0
sub eax, edx
sar eax, 1
cmp eax, 0x26
jne 0x10039a6
cmp word [ebp - 0xd4], 0x7b
jne 0x10039a6
cmp word [ebp - 0x8a], 0x7d
jne 0x10039a6
push 0x2d
pop eax
cmp word [ebp - 0xc2], ax
jne 0x10039a6
cmp word [ebp - 0xb8], ax
jne 0x10039a6
cmp word [ebp - 0xae], ax
jne 0x10039a6
cmp word [ebp - 0xa4], ax
jne 0x10039a6
mov esi, 0x104
push esi
lea eax, [ebp - 0x37c]
push eax
push esi
lea eax, [ebp - 0x584]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.010021e2
test eax, eax
lea eax, [ebp - 0xd4]
push eax
jne 0x100397a
push 0x416
call fcn.01001b8b
pop ecx
jmp 0x1003bce
push esi
lea eax, [ebp - 0x584]
push eax
call fcn.01001960
test eax, eax
jl 0x1003a93
push 0x10012c0
push esi
lea eax, [ebp - 0x584]
push eax
call fcn.0100199a
jmp 0x1003a8b
push 0x407
jmp 0x1003bc9
cmp word [ebp - 0x784], di
je 0x1003a15
mov eax, 0x104
push eax
lea ecx, [ebp - 0x37c]
push ecx
push eax
lea eax, [ebp - 0x584]
push eax
push dword [ebp - 0xda4]
lea eax, [ebp - 0x784]
push eax
call fcn.010023f1
test eax, eax
je 0x1003bcf
lea eax, [ebp - 0x37c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1003bd4
lea eax, [ebp - 0x37c]
push eax
push 0x3ef
call fcn.01001b8b
pop ecx
jmp 0x1003ac0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x37c]
push eax
call fcn.01003377
test eax, eax
je 0x1003bcf
cmp dword [ebp - 0xc], edi
mov edi, 0x104
je 0x1003a43
push ebx
push edi
push esi
call fcn.0100199a
test eax, eax
jl 0x1003a93
push edi
lea eax, [ebp - 0xb94]
push eax
lea eax, [ebp - 0x37c]
push eax
call fcn.0100256e
test eax, eax
je 0x1003bcf
lea eax, [ebp - 0xb94]
push eax
push edi
lea eax, [ebp - 0x584]
push eax
call fcn.01001960
test eax, eax
jl 0x1003a93
lea eax, [ebp - 0xb94]
push eax
push edi
lea eax, [ebp - 0x37c]
push eax
call fcn.01001960
test eax, eax
jge 0x10039e8
push 0x409
jmp 0x1003bc9
lea eax, [ebp - 0x37c]
push eax
call fcn.01001fe3
test eax, eax
je 0x1003ac6
cmp dword [0x1005640], 0
jne 0x1003ac6
push 0x414
call fcn.01001b8b
pop ecx
jmp 0x1003c2d
push 0x104
lea eax, [ebp - 0xd9c]
push eax
lea eax, [ebp - 0x37c]
push eax
call fcn.01001e6e
test eax, eax
je 0x1003bd4
and dword [ebp - 0xda4], 0
xor eax, eax
cmp dword [0x1005228], eax
mov ebx, 0x402
setne al
add eax, ebx
push eax
call fcn.01001b8b
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
lea edi, [ebx + 0x1a]
jmp 0x1003b87
cmp dword [0x1005228], 0
je 0x1003b1f
mov ax, word [ebp - 0xc]
jmp 0x1003b5a
push 0x1000
push 0
lea eax, [ebp - 0xda4]
push eax
push 0x50
lea eax, [ebp - 0x174]
push eax
call fcn.01001a6b
test eax, eax
jl 0x1003b9f
lea eax, [ebp - 0xd6]
cmp dword [ebp - 0xda4], eax
je 0x1003b9f
push dword [ebp - 0x174]
call dword [sym.imp.msvcrt.dll_towupper]
pop ecx
mov word [ebp - 0x174], ax
cmp ax, word [ebp - 0xa]
je 0x1003b9f
cmp ax, word [ebp - 0xc]
je 0x1003ba6
and dword [ebp - 0xda4], 0
xor eax, eax
cmp dword [0x1005228], eax
setne al
add eax, ebx
push eax
call fcn.01001b8b
pop ecx
push 3
lea eax, [ebp - 0xc]
push eax
push edi
push dword [0x100522c]
call esi
test eax, eax
jne 0x1003b10
xor eax, eax
jmp 0x1003c33
push 0x104
lea eax, [ebp - 0x98c]
push eax
push 1
lea eax, [ebp - 0xd9c]
push eax
call fcn.01002ce1
test eax, eax
jne 0x1003bd4
push 0x404
call fcn.01001b8b
pop ecx
xor eax, eax
inc eax
jmp 0x1003c33
xor eax, eax
mov word [ebp - 0x98c], ax
mov esi, 0x104
push esi
lea eax, [ebp - 0x98c]
push eax
push dword [ebp - 0xda0]
lea eax, [ebp - 0x37c]
push eax
call fcn.01002ce1
test eax, eax
jne 0x1003c28
cmp dword [ebp - 0xda0], eax
jne 0x1003c1e
push esi
lea eax, [ebp - 0x98c]
push eax
push 2
lea eax, [ebp - 0x37c]
push eax
call fcn.01002ce1
mov dword [ebp - 0xda8], 1
call fcn.01001ccb
mov eax, dword [ebp - 0xda8]
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.01003f01
leave
ret