Function at 0x439db0
Capabilities:
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50ebf7
mov eax, dword fs:[0]
push eax
sub esp, 0xc68
mov eax, dword [0x55e2f4]
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 edi, ecx
mov dword [ebp - 0xc6c], edi
mov ax, word [ebp + 0xc]
mov ecx, 0x622
cmp ax, cx
jne 0x439e43
push 0
push 0
push 0
lea eax, [ebp - 0xc08]
push eax
push str.OPEN_TITLE
push dword [edi + 0x10]
call fcn.00404000
add esp, 0x18
test eax, eax
je 0x43a644
lea eax, [ebp - 0xc24]
push eax
lea eax, [ebp - 0xc08]
push eax
call fcn.0043b120
lea eax, [ebp - 0xc24]
push eax
push dword [edi + 0x10]
call fcn.0043b690
add esp, 0x10
jmp 0x43a644
mov ecx, 0x5e7
cmp ax, cx
jne 0x43a028
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc64], 0
mov dword [ebp - 0xc60], 0
push dword [0x559304]
lea eax, [ebp - 0xc68]
mov dword [ebp - 4], 0
push eax
push str.SELECT_FILE
push dword [edi + 0x10]
call fcn.004045e0
add esp, 0x10
test eax, eax
je 0x439fc4
lea ebx, [edi + 0x44]
mov dword [ebp - 0xc5c], ebx
push dword [ebp - 0xc5c]
push ebx
push dword [ebx + 4]
push dword [ebx]
call fcn.00403d30
mov eax, dword [ebx]
add esp, 0x10
mov ecx, dword [ebp - 0xc64]
mov esi, dword [ebp - 0xc68]
sub ecx, esi
mov dword [ebx + 4], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x439fa5
xor ebx, ebx
xor edi, edi
cmp dword [esi + ebx + 0x14], 8
lea edx, [esi + ebx]
jb 0x439ef2
mov edx, dword [edx]
xor eax, eax
mov dword [ebp - 0xc0c], 7
mov dword [ebp - 0xc10], 0
mov word [ebp - 0xc20], ax
cmp word [edx], ax
jne 0x439f18
xor ecx, ecx
jmp 0x439f2f
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x439f20
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xc20]
call fcn.004051a0
mov ecx, dword [ebp - 0xc5c]
lea eax, [ebp - 0xc20]
push eax
mov byte [ebp - 4], 1
call fcn.00405410
mov eax, dword [ebp - 0xc0c]
mov byte [ebp - 4], 0
cmp eax, 8
jb 0x439f74
inc eax
lea ecx, [ebp - 0xc20]
push eax
push dword [ebp - 0xc20]
call fcn.004052a0
mov ecx, dword [ebp - 0xc64]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xc68]
inc edi
sub ecx, esi
add ebx, 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x439ee6
mov edi, dword [ebp - 0xc6c]
push edi
push 0x4390c0
push str.WAIT_PROCESS_INFO
call fcn.004bb8b0
add esp, 4
push eax
push dword [edi + 0x10]
call fcn.0040e610
add esp, 0x10
push 1
mov ecx, edi
call fcn.00439b30
mov ecx, dword [ebp - 0xc68]
test ecx, ecx
je 0x43a644
push dword [ebp - 0xc74]
lea eax, [ebp - 0xc68]
push eax
push dword [ebp - 0xc64]
push ecx
call fcn.00403d30
mov ecx, dword [ebp - 0xc60]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xc68]
add esp, 0x10
sub ecx, esi
imul ecx
lea ecx, [ebp - 0xc68]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.00405300
jmp 0x43a644
mov ecx, 0x5e8
cmp ax, cx
jne 0x43a0d3
lea eax, [ebp - 0xc08]
push eax
push str.SELECT_PATH
push dword [edi + 0x10]
call fcn.00403f40
add esp, 0xc
test eax, eax
je 0x43a0c5
push dword [ebp - 0xc74]
lea esi, [edi + 0x44]
push esi
push dword [esi + 4]
push dword [esi]
call fcn.00403d30
mov eax, dword [esi]
lea ecx, [ebp - 0xc20]
add esp, 0x10
mov dword [esi + 4], eax
lea eax, [ebp - 0xc08]
push eax
call fcn.00403e70
lea eax, [ebp - 0xc20]
mov dword [ebp - 4], 2
push eax
mov ecx, esi
call fcn.00405410
lea ecx, [ebp - 0xc20]
mov dword [ebp - 4], 0xffffffff
call fcn.00495b40
push edi
push 0x4390c0
push str.WAIT_PROCESS_INFO
call fcn.004bb8b0
add esp, 4
push eax
push dword [edi + 0x10]
call fcn.0040e610
add esp, 0x10
push 1
mov ecx, edi
call fcn.00439b30
jmp 0x43a644
mov ecx, 0x5e9
cmp ax, cx
jne 0x43a216
mov eax, dword [edi]
mov ecx, edi
push 0x5e6
call dword [eax + 0x8c]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
push 0
push 0
push 0xb
push ebx
mov dword [ebp - 0xc6c], ebx
call esi
push 0
push 0
push 0x1004
push ebx
call esi
mov ebx, eax
sub ebx, 1
js 0x43a1fa
lea esi, [ebx + ebx*2]
shl esi, 3
mov dword [ebp - 0xc5c], esi
nop word [eax + eax]
push 2
push ebx
push 0x102c
push dword [ebp - 0xc6c]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x43a1e2
mov eax, dword [edi + 0x38]
add eax, esi
cmp dword [eax + 0x14], 8
jb 0x43a159
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
test al, 0x10
jne 0x43a169
dec dword [edi + 0x28]
jmp 0x43a16c
dec dword [edi + 0x2c]
push 0
push ebx
push 0x1008
push dword [ebp - 0xc6c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [edi + 0x38]
lea ecx, [edi + 0x30]
add eax, esi
push eax
lea eax, [ebp - 0xc74]
push eax
call fcn.0043bde0
lea ecx, [edi + 0x30]
push dword [eax]
lea eax, [ebp - 0xc70]
push eax
call fcn.0043bb00
mov eax, dword [edi + 0x38]
push dword [ebp - 0xc70]
mov esi, dword [ebp - 0xc5c]
add eax, esi
push eax
push dword [edi + 0x3c]
add eax, 0x18
push eax
call fcn.004389e0
push dword [ebp - 0xc70]
mov eax, dword [edi + 0x3c]
lea ecx, [edi + 0x38]
push ecx
push eax
add eax, 0xffffffe8
push eax
call fcn.00403d30
add esp, 0x20
add dword [edi + 0x3c], 0xffffffe8
sub esi, 0x18
sub ebx, 1
mov dword [ebp - 0xc5c], esi
jns 0x43a130
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 1
push 0xb
push dword [ebp - 0xc6c]
call esi
push 1
mov ecx, edi
call fcn.00439b30
jmp 0x43a644
mov ecx, 0x5ea
cmp ax, cx
jne 0x43a274
mov eax, dword [edi]
mov ecx, edi
push 0x5e6
call dword [eax + 0x8c]
push 0
push 0
push 0x1009
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [edi + 0x38]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
call fcn.0043b9e0
lea ecx, [edi + 0x30]
call fcn.0043b980
push dword [edi + 0x24]
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
push 1
mov ecx, edi
call fcn.00439b30
jmp 0x43a644
mov ecx, 0x5f3
cmp ax, cx
jne 0x43a47c
push 0x1ec
lea eax, [ebp - 0x1fc]
push 0
push eax
call fcn.004e46b0
push 0x208
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.004e46b0
add esp, 0x18
lea eax, [ebp - 0x1fc]
push eax
push 0xf6
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
test eax, eax
je 0x43a2dc
lea eax, [ebp - 0x404]
push eax
push 0
push str.TempFile
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameW]
mov eax, dword [edi]
mov ecx, edi
push 0x5e6
call dword [eax + 0x8c]
mov dword [ebp - 0xc5c], eax
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc64], 0
mov dword [ebp - 0xc60], 0
xor esi, esi
mov dword [ebp - 4], 3
push esi
push esi
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jle 0x43a3a8
xor ebx, ebx
nop dword [eax]
push 0x34
lea eax, [ebp - 0xc58]
push 0
push eax
call fcn.004e46b0
add esp, 0xc
mov dword [ebp - 0xc58], 4
lea eax, [ebp - 0xc58]
mov dword [ebp - 0xc54], esi
push eax
push 0
push 0x104b
push dword [ebp - 0xc5c]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x43a38b
cmp dword [ebp - 0xc38], 2
je 0x43a38b
mov eax, dword [edi + 0x38]
lea ecx, [ebp - 0xc68]
add eax, ebx
push eax
call fcn.0043be70
push 0
push 0
push 0x1004
push dword [ebp - 0xc5c]
inc esi
add ebx, 0x18
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, eax
jl 0x43a330
mov ecx, dword [ebp - 0xc64]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xc68]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x43a45f
lea eax, [ebp - 0xc68]
push eax
lea eax, [ebp - 0x404]
push eax
call fcn.00416fb0
add esp, 8
xor ecx, ecx
movzx eax, word [ecx + str.__erasetool__]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x1fe], ax
test ax, ax
jne 0x43a3e3
lea edx, [ebp - 0x404]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x43a402
lea edi, [ebp - 0x1fc]
sub edx, esi
add edi, 0xfffffffe
nop dword [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x43a420
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x1fc]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x43a443
mov eax, dword [0x518bd8]
mov dword [edi], eax
lea eax, [ebp - 0x1fc]
push eax
jmp 0x43a464
push str.__erasetool
call fcn.0045d050
add esp, 4
lea ecx, [ebp - 0xc68]
call fcn.0040c510
jmp 0x43a644
cmp ax, 1
jne 0x43a5dc
call fcn.0043b350
test eax, eax
jne 0x43a644
mov eax, dword [edi]
mov ecx, edi
push 0x5e6
call dword [eax + 0x8c]
push 0
push 0
mov ebx, eax
push 0x1004
push ebx
mov dword [ebp - 0xc5c], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x43a644
mov dword [ebp - 0xc68], 0
mov dword [ebp - 0xc64], 0
mov dword [ebp - 0xc60], 0
xor esi, esi
mov dword [ebp - 4], 4
push esi
push esi
push 0x1004
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jle 0x43a546
xor ebx, ebx
nop dword [eax]
push 0
push esi
push dword [ebp - 0xc5c]
mov ecx, edi
call fcn.0043b7e0
mov eax, dword [edi + 0x38]
lea ecx, [ebp - 0xc68]
add eax, ebx
push eax
call fcn.0043be70
push 0
push 0
push 0x1004
push dword [ebp - 0xc5c]
inc esi
add ebx, 0x18
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, eax
jl 0x43a500
mov ecx, dword [ebp - 0xc64]
jmp 0x43a548
xor ecx, ecx
sub ecx, dword [ebp - 0xc68]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x43a573
lea ecx, [ebp - 0xc68]
call fcn.0040c510
xor eax, eax
jmp 0x43a649
lea eax, [ebp - 0xc40]
push eax
push dword [edi + 0x10]
call fcn.0043b190
add esp, 8
mov ecx, edi
push 0
call fcn.00439b30
movups xmm0, xmmword [ebp - 0xc40]
mov eax, dword [ebp - 0xc28]
sub esp, 0x1c
mov ecx, esp
sub esp, 0xc
movups xmmword [ecx], xmm0
movq xmm0, qword [ebp - 0xc30]
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0xc68]
mov ecx, esp
push eax
call fcn.00438b60
push dword [edi + 0x10]
call fcn.0043b370
add esp, 0x2c
lea ecx, [ebp - 0xc68]
call fcn.0040c510
jmp 0x43a644
cmp ax, 2
je 0x43a5e8
cmp ax, 8
jne 0x43a56c
call fcn.0043b350
test eax, eax
je 0x43a625
push dword [edi + 0x10]
push str.OPERATE_ABORT
call fcn.00419610
add esp, 8
cmp eax, 6
jne 0x43a644
mov eax, dword [edi]
mov ecx, edi
push 0
push 1
call dword [eax + 0x8c]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov dword [0x56abe0], 1
mov dword [0x56abb4], 0
push dword [edi + 0x24]
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
mov eax, dword [edi]
mov ecx, edi
push 2
call dword [eax + 0xf4]
mov eax, 1
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.004e1f40
mov esp, ebp
pop ebp
ret 0xc