Function at 0x10007c40
Capabilities:
Enumerate gui resources
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017c4cf
mov eax, dword fs:[0]
push eax
sub esp, 0x568
mov eax, dword [0x101e3ef8]
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 ebx, dword [ebp + 8]
lea ecx, [ebp - 0x460]
mov dword [ebp - 0x458], 0
push dword [ebx]
call fcn.10005010
mov eax, dword [str.STS_DRAWSIZE_DIALOG]
mov dword [ebp - 4], 0
test eax, eax
je 0x1000820e
push eax
push dword [ebp - 0x460]
call fcn.1015bb5e
add esp, 8
or edi, 0xffffffff
test eax, eax
jne 0x10007d89
push dword [ebx + 4]
lea ecx, [ebp - 0x28]
call fcn.1000ed30
mov ebx, dword [ebx + 8]
lea ecx, [ebp - 0x28]
push str.DRAWSIZE
mov byte [ebp - 4], 1
lea esi, [edi + 2]
call fcn.1000fcb0
mov ecx, eax
call fcn.10013940
test al, al
jne 0x10007cf9
push str.DRAWSIZE
lea ecx, [ebp - 0x28]
call fcn.1000fcb0
mov ecx, eax
call fcn.100119d0
mov esi, eax
mov ecx, dword [0x101e8c34]
test ecx, ecx
jne 0x10007d37
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x45c]
push eax
push 0x10006380
mov dword [ebp - 0x458], 0
call dword [sym.imp.USER32.dll_EnumWindows]
mov ecx, dword [ebp - 0x458]
mov dword [0x101e8c34], ecx
push ecx
call fcn.1001cd00
push eax
lea ecx, [ebp - 0x548]
call fcn.100160f0
lea ecx, [ebp - 0x548]
mov byte [ebp - 4], 2
mov dword [ebp - 0x478], esi
call fcn.10022b84
cmp eax, 1
mov ecx, edi
cmove ecx, dword [ebp - 0x478]
mov dword [ebx], ecx
lea ecx, [ebp - 0x548]
call fcn.10016120
lea ecx, [ebp - 0x28]
call fcn.1000f4e0
mov esi, 1
jmp 0x100081ce
mov eax, dword [str.STS_AUTODRAW_PINTU_DIALOG]
test eax, eax
je 0x1000820e
push eax
push dword [ebp - 0x460]
call fcn.1015bb5e
add esp, 8
test eax, eax
jne 0x100081cc
mov eax, dword [ebx + 4]
mov dword [ebp - 0x458], eax
call fcn.10019156
mov ecx, eax
test ecx, ecx
je 0x1000820e
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x454], esi
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
mov byte [ebp - 4], 3
jge 0x10007e01
push 0x104
lea ecx, [ebp - 0x454]
call fcn.10002810
mov esi, dword [ebp - 0x454]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push dword [esi - 8]
push esi
call fcn.1015b764
add esp, 8
test eax, eax
js 0x10008263
cmp eax, dword [esi - 8]
jg 0x10008263
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
mov eax, 0x1018cc08
mov edi, dword [esi - 0xc]
sub eax, esi
push 1
push 0x1018cc08
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], edi
call fcn.1015b764
mov edx, eax
mov ecx, SysReAllocString
sub ecx, edx
mov dword [ebp - 0x464], edx
add esp, 8
cmp ecx, edi
jl 0x10008263
add edi, edx
js 0x10008263
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x10007e9e
push edi
lea ecx, [ebp - 0x454]
call fcn.10002810
mov esi, dword [ebp - 0x454]
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x46c]
cmp ecx, eax
ja 0x10007eb2
add ecx, esi
jmp 0x10007eb7
mov ecx, 0x1018cc08
push edx
push ecx
push edx
add eax, esi
push eax
call fcn.10003250
add esp, 0x10
cmp edi, dword [esi - 8]
jg 0x10008263
push dword [ebp - 0x458]
mov dword [esi - 0xc], edi
lea ecx, [ebp - 0x454]
mov byte [edi + esi], 0
call fcn.10005c40
mov ebx, dword [ebx + 8]
lea ecx, [ebp - 0x560]
push 0
call fcn.1000f090
mov eax, dword [0x101e8c34]
mov byte [ebp - 4], 4
test eax, eax
jne 0x10007f36
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x45c]
push eax
push 0x10006380
mov dword [ebp - 0x458], 0
call dword [sym.imp.USER32.dll_EnumWindows]
mov eax, dword [ebp - 0x458]
mov dword [0x101e8c34], eax
push eax
call fcn.1001cd00
push eax
lea ecx, [ebp - 0x450]
call fcn.10016260
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 5
call fcn.10022b84
mov esi, dword [ebp - 0x454]
cmp eax, 1
jne 0x1000818b
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.1000ed30
lea ecx, [ebp - 0x560]
call fcn.1000f630
mov dword [ebp - 0x520], 0x1018cbf4
mov dword [ebp - method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push 0
push 0
lea eax, [ebp - 0x51c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x520]
mov dword [ebp - 0x458], 1
call fcn.100050b0
mov eax, dword [ebp - 0x520]
push 8
mov dword [ebp - 4], 7
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x520]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x524], eax
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.100176a3
mov edi, eax
add esp, 4
test edi, edi
je 0x10008012
push 1
mov byte [ebp - 4], 8
call fcn.1014faa1
add esp, 4
mov dword [edi + 4], eax
jmp 0x10008014
xor edi, edi
lea eax, [ebp - 0x518]
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x510], eax
lea eax, [ebp - 0x514]
mov dword [ebp - 0x50c], eax
lea eax, [ebp - 0x508]
mov dword [ebp - 0x500], eax
lea eax, [ebp - 0x504]
mov dword [ebp - 0x4fc], eax
lea eax, [ebp - 0x4f8]
mov dword [ebp - 0x4f0], eax
lea eax, [ebp - 0x4f4]
mov dword [ebp - 0x4ec], eax
mov eax, dword [0x101e8c3c]
mov dword [ebp - 0x4dc], eax
mov eax, dword [0x101e8c40]
mov dword [ebp - method.std::basic_filebuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [ebp - 0x4d4], 0
mov byte [ebp - 0x4df], 0
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x504], 0
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4d0], 0
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4e4], 0
push 0x40
push 2
push esi
lea ecx, [ebp - 0x520]
mov byte [ebp - 4], 9
call fcn.10008fa0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x560]
call fcn.100145f0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x520]
mov byte [ebp - 4], 0xa
push eax
call fcn.10004ad0
add esp, 0xc
lea ecx, [ebp - 0x51c]
call fcn.10008bc0
test eax, eax
jne 0x10008170
mov eax, dword [ebp - 0x520]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + ecx - 0x4e8], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0x514]
and eax, 0x17
mov dword [ebp + ecx - 0x514], eax
mov ecx, dword [ebp + ecx - 0x510]
and ecx, eax
jne 0x10008218
lea ecx, [ebp - 0x28]
mov dword [ebx], 0
call fcn.100059d0
lea ecx, [ebp - 0x520]
call fcn.10005d10
jmp 0x10008191
mov dword [ebx], 0xffffffff
lea ecx, [ebp - 0x450]
call fcn.10016310
lea ecx, [ebp - 0x560]
call fcn.1000f4e0
or edi, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100081c5
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, 1
jmp 0x100081ce
xor esi, esi
mov eax, dword [ebp - 0x460]
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x100081f0
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
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.1014e1c5
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10002080
test cl, 4
je 0x10008224
mov esi, str.ios_base::badbit_set
jmp 0x10008234
test cl, 2
mov esi, str.ios_base::failbit_set
mov eax, str.ios_base::eofbit_set
cmove esi, eax
lea eax, [ebp - 0x470]
push 1
push eax
call fcn.10008ed0
add esp, 8
lea ecx, [ebp - 0x574]
push eax
push esi
call fcn.100055d0
push 0x101d04f0
lea eax, [ebp - 0x574]
push eax
call fcn.10155b99
push 0x80070057
call fcn.10002080
int3