Function at 0x10039ce0
Capabilities:
Hide graphical window
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x4d4
mov eax, dword [0x10060008]
xor eax, esp
mov dword [esp + 0x4cc], eax
mov eax, dword [esp + 0x4d8]
mov dword [esp + 0x4c], eax
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x10], ebp
push esi
push edi
cmp edx, 0x7d4
jne 0x1003a42e
mov edi, dword [0x100646fc]
mov esi, dword [edi + 4]
test esi, esi
je 0x1003a42e
mov eax, dword [esi + 0x14]
add eax, 0xfffffffc
cmp eax, 3
ja case.default.0x10039d35
jmp dword [eax*4 + 0x1003a448]
xorps xmm0, xmm0
mov dword [esp + 0x40], 0
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x20], 0x24
mov dword [esp + 0x24], ebp
mov eax, dword [edi]
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0x10]
call fcn.1003ddb0
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x34], 0x10060028
mov dword [esp + 0x38], 3
call dword [sym.imp.COMDLG32.dll_ChooseColorA]
test eax, eax
je case.default.0x10039d35
mov eax, dword [esp + 0x2c]
shr eax, 0x10
movzx eax, al
push eax
movzx eax, word [esp + 0x30]
shr eax, 8
push eax
movzx eax, byte [esp + 0x34]
push eax
push 0x100588f8
lea eax, [esp + 0x2d8]
push 0x104
push eax
call fcn.100032e0
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x1c
lea ecx, [esp + 0x2c8]
jmp 0x1003a3f5
push 0x104
lea eax, [esp + 0x2cc]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x3d0]
push 0x104
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xb8]
push 0x104
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1c0]
push 0x104
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x14], 0
xorps xmm0, xmm0
mov dword [esp + 0x80], 0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x8c], xmm0
push 4
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
movlpd qword [esp + 0xac], xmm0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x6c], 0x4c
mov dword [esp + 0x70], ebp
mov eax, dword [edi]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x18]
push eax
push 0x104
lea eax, [esp + 0x1cc]
push eax
push 0x104
lea eax, [esp + 0xcc]
push eax
push 0x20
lea eax, [esp + 0x2e4]
push eax
push str.Title:__32__r_n__Path:__256__r_n__Filter:__256__r_n__Default_Extension:__3__r_n_
push dword [esi + 8]
call fcn.100043f0
mov esi, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
lea eax, [esp + 0x2f0]
push eax
push 0x10058904
call esi
test eax, eax
lea ecx, [esp + 0x2f8]
lea eax, [esp + 0xe8]
mov edx, str.Select_file
push eax
cmove ecx, edx
push 0x10058964
mov dword [esp + 0xd0], ecx
call esi
add esp, 0x38
test eax, eax
je 0x10039f57
lea ecx, [esp + 0xb8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039f21
sub ecx, edx
lea eax, [esp + ecx + 0xb7]
mov cl, byte [eax]
test cl, cl
je 0x10039f49
cmp cl, 0x5c
je 0x10039f46
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x10039f37
jmp 0x10039f49
mov byte [eax], 0
lea eax, [esp + 0xb8]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x1c0]
push eax
push 0x10058968
call esi
add esp, 8
test eax, eax
je 0x10039f9d
mov cl, byte [esp + 0x1c0]
lea eax, [esp + 0x1c0]
test cl, cl
je 0x10039f90
nop
cmp cl, 9
jne 0x10039f88
mov byte [eax], 0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10039f80
lea eax, [esp + 0x1c0]
mov dword [esp + 0x74], eax
jmp 0x10039fa5
mov dword [esp + 0x74], str.All_Files__._
lea eax, [esp + 0x14]
push eax
push 0x10058984
call esi
add esp, 8
mov dword [esp + 0x88], 0x104
test eax, eax
mov dword [esp + 0x9c], 0x81804
lea eax, [esp + 0x3d0]
mov edx, 0x10058988
mov dword [esp + 0x84], eax
lea ecx, [esp + 0x14]
lea eax, [esp + 0x68]
cmove ecx, edx
push eax
mov dword [esp + 0xa8], ecx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameA]
test eax, eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x2c], eax
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 0x10]
je 0x1003a11e
mov esi, dword [esp + 0x88]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0x28], esi
call ebx
add esp, 4
test esi, esi
je 0x1003a048
cmp byte [esi], 0
jne 0x1003a04d
mov esi, 0x1005796d
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a052
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call edi
mov edx, eax
add esp, 8
test edx, edx
jne 0x1003a07d
push 1
push 1
call edi
add esp, 8
jmp 0x1003a09a
mov ecx, esi
lea ebp, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a082
sub ecx, ebp
push ecx
push esi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov ebp, dword [esp + 0x24]
add esp, 0xc
mov ecx, eax
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
mov dword [eax + 0x10], ecx
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 8]
call ebx
add esp, 4
lea ecx, [esp + 0x20]
call fcn.1003c240
mov esi, eax
test esi, esi
je 0x1003a0cb
cmp byte [esi], 0
jne 0x1003a0d0
mov esi, 0x1005796d
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a0d5
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call edi
mov edx, eax
add esp, 8
test edx, edx
je 0x1003a1aa
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a0f8
sub ecx, edi
push ecx
push esi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, eax
add esp, 0xc
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
mov dword [eax + 8], ecx
jmp case.default.0x10039d35
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0x28], 0x10057997
call esi
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
add esp, 4
push 1
push 1
call edi
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x1003a151
push 1
push 1
call edi
add esp, 8
mov ecx, eax
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
mov dword [eax + 0x10], ecx
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 8]
call esi
add esp, 4
lea ecx, [esp + 0x20]
call fcn.1003c240
mov esi, eax
test esi, esi
je 0x1003a180
cmp byte [esi], 0
jne 0x1003a185
mov esi, 0x1005796d
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a190
sub ecx, edx
push 1
lea eax, [ecx + 1]
push eax
call edi
mov edx, eax
add esp, 8
test edx, edx
jne 0x1003a1c5
push 1
push 1
call edi
mov ecx, eax
add esp, 8
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
mov dword [eax + 8], ecx
jmp case.default.0x10039d35
mov ecx, esi
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003a1d0
sub ecx, edi
push ecx
push esi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, eax
add esp, 0xc
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
mov dword [eax + 8], ecx
jmp case.default.0x10039d35
xorps xmm0, xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x68]
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x44], 0
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
mov edx, dword [esi + 0x10]
call fcn.1003c4c0
mov eax, dword [0x100646fc]
mov dword [esp + 0x20], 0x3c
mov dword [esp + 0x24], ebp
mov eax, dword [eax]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x38], 0x141
call dword [sym.imp.COMDLG32.dll_ChooseFontA]
test eax, eax
je case.default.0x10039d35
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa4], eax
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [esp + 0x68]
call fcn.1003c450
mov ecx, eax
jmp 0x1003a3f5
mov ebx, dword [esi + 0x10]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
js 0x1003a3dc
lea eax, [esp + 0x14]
mov dword [esp + 0x3c], 0
push eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0x100579c7
mov dword [esp + 0x20], 0
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
js 0x1003a378
mov ecx, 0x104
mov eax, 0x100579c6
nop word [eax + eax]
cmp byte [eax], 0
je 0x1003a30f
inc eax
sub ecx, 1
jne 0x1003a300
xor esi, esi
jmp 0x1003a316
mov esi, 0x104
sub esi, ecx
inc esi
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10007b55
add esp, 4
mov edi, eax
push esi
push edi
push 0xffffffffffffffff
push 0x100579c6
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x20]
push eax
mov edx, dword [ecx]
lea eax, [esp + 0x6c]
push eax
push edi
push 0
push 0
push ecx
call dword [edx + 0xc]
push edi
call fcn.10007a2e
mov eax, dword [esp + 0x18]
add esp, 4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x34], 5
mov dword [esp + 0x38], 0x1003c120
mov dword [esp + 0x3c], ebx
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov esi, eax
test esi, esi
je 0x1003a3b3
push 0x10065ec0
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
jmp 0x1003a3c7
push 0x104
push 0
push 0x10065ec0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x18]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x100646fc]
mov eax, dword [eax + 4]
push dword [eax + 0x10]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, 0x10065ec0
call fcn.1003e4c0
mov ecx, dword [0x100646fc]
mov ecx, dword [ecx + 4]
mov dword [ecx + 0x10], eax
push 0
push dword [esp + 0x60]
call dword [sym.imp.USER32.dll_ShowWindow]
push ebp
call dword [sym.imp.USER32.dll_SetFocus]
push 0x105
push 0
push 0
push ebp
call dword [sym.imp.USER32.dll_RedrawWindow]
call fcn.10037df0
mov ecx, dword [esp + 0x4dc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100076a5
add esp, 0x4d4
ret