Function at 0x414770
Capabilities:
Check if file exists
Create directory
Get file attributes
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1c8
test byte [0x4687cc], 0x20
push ebx
push ebp
push esi
push edi
je 0x414790
call fcn.004145c0
test al, al
je 0x414e88
mov eax, dword [0x468850]
mov esi, dword [0x4687c0]
push eax
push esi
mov dword [esp + 0x28], esi
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp byte [esp + 0x1e4], 0
je 0x41487d
lea ecx, [esp + 0x48]
push ecx
mov ebx, esi
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
push 0
push 0x44e
push ebx
mov dword [esp + 0x28], eax
sub edi, eax
sub esi, ebp
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0x44f
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 1
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 2
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor ebx, ebx
jmp 0x414830
test bl, 1
je 0x41483c
inc dword [esp + 0x1c]
sub edi, 2
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
push 0x304
sub esi, 2
push esi
push edi
inc ebp
push ebp
push edx
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
inc ebx
cmp ebx, 0x2d
jb 0x414830
mov ecx, dword [esp + 0x20]
push 5
push 0x44d
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1dc]
push ebx
lea edx, [esp + 0xdc]
push str.0____d__0___
push edx
call fcn.00427bb9
add esp, 0xc
lea eax, [esp + 0xd8]
push eax
push 0x44d
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ebp, 1
cmp dword [0x4687e8], ebp
jne 0x4148e1
push 0x10
call fcn.00427ed0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4148e1
rdtsc
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0xffffffff
mov edi, ecx
mov dword [esp + 0x1c], ecx
jmp 0x4148e7
xor edi, edi
mov dword [esp + 0x1c], edi
mov eax, ebx
lea esi, [esp + 0xc0]
call fcn.00416500
test edi, edi
je 0x414903
mov ecx, dword [esp + 0xc4]
mov dword [edi + 8], ecx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x40], ebp
mov ebp, dword [0x46890c]
setne byte [esp + 0x17]
mov dword [esp + 0x44], 0
cmp ebp, dword [0x468910]
je 0x414e63
mov edi, edi
mov edx, dword [ebp + 0x38]
lea ebx, [ebp + 0x1c]
cmp edx, dword [0x4687c8]
jne 0x414d9c
lea eax, [esp + 0x18]
push eax
mov edi, ebx
mov byte [esp + 0x1c], 0x2e
call fcn.00415cc0
inc eax
push eax
push 0
push ebx
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], 0
mov byte [esp + 0xb4], 0
call fcn.004034f0
cmp dword [0x4687c8], 5
mov ecx, 0x461250
je 0x414995
mov ecx, 0x461254
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4149a0
sub eax, esi
push eax
push ecx
lea eax, [esp + 0xac]
call fcn.00403660
mov ecx, dword [esp + 0x1e0]
push 0xffffffffffffffff
push 0
push ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x90], 0xf
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
call fcn.004034f0
mov esi, dword [ebp + 0x14]
mov eax, esi
cmp eax, esi
jae 0x4149f0
cmp dword [ebp + 0x18], 0x10
jb 0x4149fb
mov edx, dword [ebp + 4]
jmp 0x4149fe
lea edx, [ebp + 4]
xor eax, eax
mov ecx, 0x45ba10
call fcn.00401760
test eax, eax
jne 0x414a17
test esi, esi
setne al
test eax, eax
je 0x414a55
push ebp
mov eax, 0x461258
lea edi, [esp + 0x8c]
call fcn.0040bad0
add esp, 4
push 0
push eax
or eax, 0xffffffff
lea esi, [esp + 0x74]
call fcn.004038e0
cmp dword [esp + 0xa0], 0x10
jb 0x414a55
mov edx, dword [esp + 0x8c]
push edx
call fcn.00427d3a
add esp, 4
push ebx
mov eax, 0x461258
lea edi, [esp + 0x8c]
call fcn.0040bad0
add esp, 4
push 0
push eax
or eax, 0xffffffff
lea esi, [esp + 0x74]
call fcn.004038e0
cmp dword [esp + 0xa0], 0x10
jb 0x414a93
mov eax, dword [esp + 0x8c]
push eax
call fcn.00427d3a
add esp, 4
test byte [0x4687cc], 0x20
mov eax, 0x468898
jne 0x414aa8
mov eax, dword [esp + 0x1e0]
xor ebx, ebx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
call fcn.004034f0
mov esi, dword [ebp + 0x14]
mov eax, esi
cmp eax, esi
jae 0x414ad0
cmp dword [ebp + 0x18], 0x10
jb 0x414adb
mov edx, dword [ebp + 4]
jmp 0x414ade
lea edx, [ebp + 4]
xor eax, eax
mov ecx, 0x45ba10
call fcn.00401760
cmp eax, ebx
jne 0x414af9
xor eax, eax
cmp esi, ebx
setne al
cmp eax, ebx
je 0x414b36
push ebp
mov eax, 0x461258
lea edi, [esp + 0x8c]
call fcn.0040bad0
add esp, 4
push ebx
push eax
or eax, 0xffffffff
lea esi, [esp + 0x2c]
call fcn.004038e0
cmp dword [esp + 0xa0], 0x10
jb 0x414b36
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.00427d3a
add esp, 4
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esp + 0x28]
jae 0x414b45
lea eax, [esp + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push eax
call edi
cmp eax, 0x10
je 0x414b6b
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esp + 0x28]
jae 0x414b62
lea eax, [esp + 0x28]
push ebx
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExA]
push 1
push 0x461258
lea ecx, [esp + 0x50]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], 0
call fcn.00403770
push ebx
lea edx, [esp + 0xa8]
push edx
or eax, 0xffffffff
lea esi, [esp + 0x50]
call fcn.004038e0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0xac], 0xf
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], 0
call fcn.004034f0
cmp dword [esp + 0x60], 0x10
jb 0x414bdf
mov eax, dword [esp + 0x4c]
push eax
call fcn.00427d3a
add esp, 4
push ebx
lea ecx, [esp + 0x8c]
push ecx
or eax, 0xffffffff
lea esi, [esp + 0x2c]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], 0
call fcn.004038e0
cmp dword [esp + 0xa0], 0x10
jb 0x414c1f
mov edx, dword [esp + 0x8c]
push edx
call fcn.00427d3a
add esp, 4
mov esi, dword [esp + 0x40]
cmp esi, 3
je 0x414c59
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esp + 0x28]
jae 0x414c37
lea eax, [esp + 0x28]
push eax
call edi
cmp eax, 0xffffffff
je 0x414c59
mov eax, dword [esp + 0x20]
push eax
lea eax, [esp + 0xa8]
call fcn.0040fc30
mov esi, eax
add esp, 4
mov dword [esp + 0x40], esi
cmp esi, 1
je 0x414c63
cmp esi, 3
jne 0x414c8b
cmp byte [esp + 0x17], 0
je 0x414db0
mov ecx, dword [esp + 0x1dc]
push ecx
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x74]
call fcn.004165e0
cmp byte [esp + 0x17], 0
jne 0x414d19
mov ecx, dword [esp + 0x44]
inc ecx
mov eax, ecx
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
mov dword [esp + 0x44], ecx
test eax, eax
jge 0x414cb3
fadd qword [0x462da0]
fidiv dword [esp + 0x1dc]
fmul qword [0x462da8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1dc]
fldcw word [esp + 0x48]
fistp qword [esp + 0x48]
mov edx, dword [esp + 0x48]
push edx
push eax
push ecx
fldcw word [esp + 0x24]
lea ecx, [esp + 0xe4]
push str._d____d___d___
push ecx
call fcn.00427bb9
mov eax, dword [esp + 0x34]
add esp, 0x14
lea edx, [esp + 0xd8]
push edx
push 0x44d
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
cmp byte [0x4687c4], 0
je 0x414df6
cmp esi, 4
je 0x414df6
cmp dword [esp + 0x3c], 0x10
jb 0x414d43
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00427d3a
add esp, 4
cmp dword [esp + 0x84], 0x10
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], 0
jb 0x414d6b
mov edx, dword [esp + 0x70]
push edx
call fcn.00427d3a
add esp, 4
cmp dword [esp + 0xbc], 0x10
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], ebx
mov byte [esp + 0x70], 0
jb 0x414d9c
mov eax, dword [esp + 0xa8]
push eax
call fcn.00427d3a
add esp, 4
add ebp, 0x3c
cmp ebp, dword [0x468910]
jne 0x414930
jmp 0x414e63
mov ecx, dword [0x4687c8]
lea edx, [esp + 0x24]
cmp ecx, 5
jne 0x414ddf
mov eax, dword [0x4687d0]
mov ecx, dword [0x4687d4]
push eax
push ecx
push edx
lea eax, [esp + 0x78]
push eax
call fcn.0040fdb0
add esp, 0x10
jmp 0x414c96
push 0x4687d8
push edx
lea eax, [esp + 0x74]
call fcn.00404d00
add esp, 8
jmp 0x414c96
cmp dword [esp + 0x3c], 0x10
jb 0x414e0a
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00427d3a
add esp, 4
cmp dword [esp + 0x84], 0x10
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], 0
jb 0x414e32
mov edx, dword [esp + 0x70]
push edx
call fcn.00427d3a
add esp, 4
cmp dword [esp + 0xbc], 0x10
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], ebx
mov byte [esp + 0x70], 0
jb 0x414e63
mov eax, dword [esp + 0xa8]
push eax
call fcn.00427d3a
add esp, 4
lea esi, [esp + 0xc0]
call fcn.00416660
cmp dword [esp + 0x1c], 0
je 0x414e88
mov ebx, dword [esp + 0x1c]
call fcn.004169e0
push ebx
call fcn.00427d3a
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c8
ret