Function at 0x69046ef0
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag
Check if file exists
Check os version
Get common file path
Get file system object information
Get kernel32 base address
Get process heap flags
Get startup folder
Hide graphical window
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xa1c
mov dword [ebp - 0x9b0], eax
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_GetPropW]
mov dword [esp + 4], str.FileOpenDlgInfos
mov dword [ebp - 0x9cc], eax
call eax
sub esp, 8
mov esi, eax
test byte [0x6907604c], 8
jne 0x69047fd7
mov dword [ebp - 0x964], 0x114
lea eax, [ebp - 0x964]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetVersionExW]
mov eax, dword [ebp - 0x954]
sub esp, 4
cmp eax, 1
je 0x69047c6c
mov dword [ebp - 0x9c8], 0
mov dword [ebp - 0x9bc], 0
cmp eax, 2
je 0x69047743
test byte [0x6907604c], 8
jne 0x69047768
mov eax, dword [esi]
cmp dword [eax], 0x4c
je 0x690477ab
mov edi, dword [ebp - 0x9b0]
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x480
mov dword [esp], edi
mov dword [ebp - 0x9b4], ebx
call ebx
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.user32.dll_DestroyWindow]
sub esp, 4
mov dword [esp + 4], 0x47c
mov dword [esp], edi
call ebx
mov dword [esi + 0x60], eax
sub esp, 8
mov ebx, dword [ebp - 0x9b0]
mov edi, dword [ebp - 0x9b4]
mov dword [esp + 4], 0x470
mov dword [esp], ebx
call edi
mov dword [ebp - 0x9b0], ebx
sub esp, 8
mov dword [esi + 0x58], eax
mov dword [ebp - 0x9b4], edi
mov dword [esp], ebx
lea ebx, [ebp - 0x984]
mov dword [esp + 4], 0x471
call edi
mov edi, dword [sym.imp.user32.dll_GetWindowRect]
sub esp, 8
mov dword [esi + 0x5c], eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call edi
sub esp, 8
mov dword [esp + 8], ebx
mov ebx, dword [ebp - 0x9b0]
mov dword [esp + 0xc], 2
mov dword [esp + 4], ebx
mov ebx, dword [sym.imp.user32.dll_MapWindowPoints]
mov dword [esp], 0
call ebx
mov eax, dword [ebp - 0x9b0]
mov edx, dword [ebp - 0x9b4]
sub esp, 0x10
mov dword [esp + 4], 0x440
mov dword [esp], eax
call edx
lea edx, [ebp - 0x994]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9b0]
lea edx, [ebp - 0x994]
sub esp, 8
mov dword [esp + 8], edx
mov dword [esp + 0xc], 2
mov dword [esp + 4], eax
mov dword [esp], 0
call ebx
mov ecx, dword [ebp - 0x980]
mov ebx, dword [ebp - 0x97c]
mov edx, dword [ebp - 0x98c]
sub esp, 0x10
lea eax, [ecx - 1]
mov ecx, dword [ebp - 0x988]
add edx, ebx
sub edx, dword [ebp - 0x994]
mov dword [ebp - 0x994], ebx
add ecx, eax
sub ecx, dword [ebp - 0x990]
mov dword [ebp - 0x98c], edx
sub edx, ebx
mov dword [ebp - 0x988], ecx
sub ecx, eax
mov dword [ebp - 0x990], eax
mov edi, dword [esi + 4]
mov dword [esp + 0x2c], 0
test edi, edi
mov edi, dword [0x6908d004]
mov dword [esp + 0x24], 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov edi, dword [ebp - 0x9b0]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x54020944
mov dword [esp + 8], 0
je 0x69047723
mov dword [esp + 4], 0x69078714
mov dword [esp], 0
call dword [sym.imp.user32.dll_CreateWindowExW]
mov dword [esi + 0x64], eax
sub esp, 0x30
mov edi, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x41e
mov dword [esp], eax
mov dword [ebp - 0x9ac], edi
call edi
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x43c
mov eax, dword [esi + 0x64]
mov dword [esp], eax
call edi
sub esp, 0x10
mov dword [esp + 0xc], 0x690792f4
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0x413
mov eax, dword [esi + 0x64]
mov dword [esp], eax
call edi
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x431
mov eax, dword [esi + 0x64]
mov dword [esp], eax
call edi
sub esp, 0x10
mov ebx, eax
lea eax, [ebp - 0x9a4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [sym.imp.shell32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x9d8], eax
call eax
lea eax, [ebp - 0x2cc]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9a4]
mov dword [esp + 0x10], 0x109
mov dword [esp], eax
mov eax, dword [sym.imp.shell32.dll_SHGetFileInfoW]
mov dword [esp + 0xc], 0x2b4
mov dword [esp + 4], 0
mov dword [ebp - 0x9c0], eax
call eax
mov eax, dword [ebp - 0x2cc]
sub esp, 0x14
mov dword [esp + 8], eax
mov eax, dword [sym.imp.comctl32.dll_ImageList_ReplaceIcon]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
mov dword [ebp - 0x9b8], eax
call eax
mov eax, dword [ebp - 0x2cc]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_DestroyIcon]
mov dword [ebp - 0x9c4], eax
call eax
mov eax, dword [ebp - 0x9a4]
sub esp, 4
mov dword [esp], eax
call dword [0x690a0778]
sub esp, 4
mov dword [esp + 0xc], 0x69079240
mov dword [esp + 8], 9
mov dword [esp + 4], 0x444
mov eax, dword [esi + 0x64]
mov dword [esp], eax
call edi
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x421
mov eax, dword [esi + 0x64]
mov dword [esp], eax
call edi
mov eax, dword [esi]
sub esp, 0x10
call fcn.69044cf0
test eax, eax
jne 0x69047cab
mov eax, dword [esi + 0x10]
test eax, eax
je 0x69047b22
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9b0]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
sub esp, 8
test byte [0x6907604c], 8
jne 0x69047b7a
mov eax, dword [esi + 0xc]
test eax, eax
je 0x69047350
mov ecx, dword [ebp - 0x9bc]
test ecx, ecx
je 0x6904733d
cmp word [eax], 0
jne 0x69048249
mov dword [esp + 4], eax
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
sub esp, 8
mov edx, dword [esi + 8]
test edx, edx
je 0x690477fb
movzx ecx, word [edx]
test cx, cx
je 0x690473e1
xor eax, eax
lea ebx, [ebp - 0x724]
jmp 0x69047374
movzx ecx, word [edx + eax]
mov word [ebx + eax], cx
add eax, 2
test cx, cx
jne 0x69047370
mov dword [esp], ebx
call dword [sym.imp.shlwapi.dll_PathFileExistsW]
sub esp, 4
test eax, eax
jne 0x69048c4f
mov edx, dword [esi + 8]
test edx, edx
je 0x690477fb
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 8], 0
xor edx, edx
sub esp, 0xc
test byte [0x6907604c], 8
jne 0x690491d9
test edx, edx
je 0x690477fb
cmp word [edx], 0
je 0x690477fb
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetFocus]
sub esp, 4
test byte [0x6907604c], 8
jne 0x69048004
mov eax, dword [esi]
mov eax, dword [eax + 0x34]
test al, 1
jne 0x690480fc
test al, 4
jne 0x69047990
test byte [esi + 0x70], 1
jne 0x69047990
mov edi, dword [sym.imp.user32.dll_ShowWindow]
mov ebx, dword [sym.imp.user32.dll_EnableWindow]
test al, 0x10
je 0x690479f6
lea esi, [esi]
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 4], str.FileOpenDlgInfos
mov dword [esp], eax
mov eax, dword [ebp - 0x9cc]
call eax
sub esp, 8
mov esi, eax
test byte [0x6907604c], 8
jne 0x69048138
mov ebx, dword [esi + 0x1c]
test ebx, ebx
je 0x69048171
cmp word [ebx], 0
je 0x69048d71
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69047488
sub eax, ebx
add eax, 2
add ebx, eax
cmp word [ebx], 0
je 0x69047719
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x690474a8
sub eax, ebx
mov dword [esp + 4], 0
add eax, 2
mov dword [esp + 8], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x69047719
xor eax, eax
lea esi, [esi]
nop
movzx edx, word [ebx + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x690474f0
mov eax, dword [esi + 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x143
mov ebx, dword [ebp - 0x9ac]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x58]
mov dword [esp], eax
call ebx
sub esp, 0x10
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x151
mov eax, dword [esi + 0x58]
mov dword [esp], eax
call ebx
mov ecx, dword [esi + 0x18]
mov ebx, 1
sub esp, 0x10
test ecx, ecx
je 0x69048214
mov eax, dword fs:[0x18]
mov dword [ebp - 0x9bc], eax
lea esi, [esi]
nop
cmp word [ecx], 0
je 0x69047679
mov eax, ecx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69047578
mov dword [esp + 0xc], ecx
lea edi, [eax + 2]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x143
mov eax, dword [esi + 0x58]
mov dword [esp], eax
mov eax, dword [ebp - 0x9ac]
call eax
lea eax, [ebx + 1]
sub esp, 0x10
cmp word [edi], 0
mov dword [ebp - 0x9b8], eax
je 0x69047ae8
mov eax, edi
nop
add eax, 2
cmp word [eax], 0
jne 0x690475c0
sub eax, edi
add eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9bc]
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x69047719
xor eax, eax
nop
movzx ecx, word [edi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x69047600
cmp word [edi], 0
je 0x69047af8
mov ecx, edi
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x69047620
sub ecx, edi
add ecx, 2
mov dword [esp + 0xc], edx
add ecx, edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x151
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x9b4], ecx
mov dword [ebp - 0x9b0], edx
mov dword [esp], eax
mov eax, dword [ebp - 0x9ac]
call eax
mov edx, dword [ebp - 0x9b0]
mov ebx, dword [ebp - 0x9b8]
sub esp, 0x10
mov ecx, dword [ebp - 0x9b4]
cmp word [edx], 0
jne 0x69047568
mov eax, dword [esi + 0x1c]
mov edx, dword [esi]
mov edi, dword [esi + 0x18]
mov dword [ebp - 0x9b0], edx
mov ecx, eax
test edi, edi
je 0x69048219
cmp eax, 1
mov edi, dword [edx + 0x18]
adc ebx, 0xffffffff
cmp edi, ebx
jbe 0x690476b7
test eax, eax
sete al
movzx eax, al
mov dword [edx + 0x18], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x9b0], eax
mov edi, dword [eax + 0x18]
test edi, edi
jne 0x69047b17
test ecx, ecx
je 0x69047b02
mov dword [esp + 8], edi
mov ebx, dword [ebp - 0x9ac]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x14e
mov eax, dword [esi + 0x58]
mov dword [esp], eax
call ebx
sub esp, 0x10
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x150
mov eax, dword [esi + 0x58]
mov dword [esp], eax
call ebx
mov edi, eax
lea eax, [eax + 1]
sub esp, 0x10
cmp eax, 1
ja 0x69048198
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x69078734
mov dword [esp], 0
call dword [sym.imp.user32.dll_CreateWindowExA]
mov dword [esi + 0x64], eax
sub esp, 0x30
jmp 0x69047152
xor eax, eax
cmp dword [ebp - 0x960], 4
seta al
mov dword [ebp - 0x9bc], eax
mov dword [ebp - 0x9c8], eax
test byte [0x6907604c], 8
je 0x69046f81
mov eax, dword [ebp - 0x9c8]
mov dword [esp + 0xc], str.Running_on_2000__d__98__d_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x9bc]
mov dword [esp + 4], 0x6907604c
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.69044e10
mov eax, dword [esi]
cmp dword [eax], 0x4c
jne 0x69046f8c
test byte [eax + 0x34], 0xe0
je 0x69046f8c
mov edi, dword [ebp - 0x9b0]
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x47c
mov dword [esp], edi
mov dword [ebp - 0x9b4], ebx
call ebx
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.user32.dll_DestroyWindow]
sub esp, 4
mov dword [esp + 4], 0x480
mov dword [esp], edi
call ebx
mov dword [esi + 0x60], eax
sub esp, 8
jmp 0x69046fcd
mov eax, dword [ebp - 0x9bc]
lea edi, [ebp - 0x51c]
test eax, eax
jne 0x6904838d
mov eax, dword [esi + 0xc]
test eax, eax
je 0x69047820
cmp word [eax], 0
jne 0x690492ff
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x9c8]
mov dword [ebp - 0x9b8], eax
test ecx, ecx
je 0x69048479
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x6904784a
cmp word [ebx], 0
jne 0x69048e82
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x9b8]
call eax
mov ebx, dword [sym.imp.shell32.dll_SHGetFolderPathW]
sub esp, 0xc
mov dword [esi + 8], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 5
mov dword [esp], eax
call ebx
sub esp, 0x14
test eax, eax
je 0x69049030
test byte [0x6907604c], 8
je 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a0c9
mov eax, ebx
shr eax, 0x10
je 0x6904a0b1
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x6907869d
test edx, edx
jne 0x69049e4c
cmp word [ebx], 0
je 0x6904a093
mov edi, edx
lea edx, [edx + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x690478ff
mov eax, 0x224c
mov word [ebp - 0x51c], ax
lea eax, [ebp - 0x51a]
jmp 0x6904795b
cmp dx, 9
je 0x6904a05a
cmp dx, 0xa
jne 0x69049ff8
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
test edi, edi
jle 0x69049e20
lea edi, [ebp - 0x3fa]
cmp eax, edi
ja 0x69049e20
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x69049fde
jbe 0x69047920
cmp dx, 0x22
je 0x6904a049
cmp dx, 0x5c
jne 0x69049fef
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x69047940
mov ebx, dword [ebp - 0x9b0]
mov dword [esp + 4], 0x410
mov eax, dword [ebp - 0x9b4]
mov dword [esp], ebx
call eax
mov edi, dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9b4]
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], 0x410
call eax
mov ebx, dword [sym.imp.user32.dll_EnableWindow]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ebx
mov eax, dword [esi]
sub esp, 8
test byte [eax + 0x34], 0x10
jne 0x69047a4e
mov eax, dword [ebp - 0x9b0]
mov edx, dword [ebp - 0x9b4]
mov dword [esp + 4], 0x40e
mov dword [esp], eax
call edx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9b0]
mov edx, dword [ebp - 0x9b4]
sub esp, 8
mov dword [esp + 4], 0x40e
mov dword [esp], eax
call edx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ebx
sub esp, 8
test byte [esi + 0x70], 1
je 0x69047440
mov eax, dword [0x6908d004]
lea ebx, [ebp - 0x51c]
mov edi, dword [sym.imp.user32.dll_LoadStringW]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4b1
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9b0]
mov esi, dword [sym.imp.user32.dll_SetDlgItemTextW]
sub esp, 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], eax
call esi
mov eax, dword [0x6908d004]
sub esp, 0xc
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4b2
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x9b0]
sub esp, 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x443
mov dword [esp], eax
call esi
sub esp, 0xc
jmp 0x69047440
mov eax, 2
jmp 0x690475ce
mov ecx, 2
jmp 0x6904762e
mov eax, dword [ebp - 0x9b0]
mov dword [eax + 0x18], 1
mov eax, dword [esi]
mov ecx, dword [esi + 0x1c]
mov edi, dword [eax + 0x18]
cmp ecx, 1
sbb edi, 0
jmp 0x690476c7
test byte [esi + 0x70], 1
je 0x69047315
mov eax, dword [0x6908d004]
lea edi, [ebp - 0x51c]
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], edi
mov dword [esp + 4], 0x4b4
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
mov eax, dword [ebp - 0x9b0]
sub esp, 0x10
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
sub esp, 8
test byte [0x6907604c], 8
je 0x69047322
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x69048e5f
mov eax, ebx
shr eax, 0x10
je 0x690486b4
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x9c0], 0x6907869d
sub esp, 8
test eax, eax
jne 0x690486cd
cmp word [ebx], 0
je 0x690491b8
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x69047bc0
mov eax, 0x224c
mov dword [ebp - 0x9c0], esi
lea ecx, [ebp - 0x51a]
lea edi, [ebp - 0x3fa]
mov word [ebp - 0x51c], ax
mov dword [ebp - 0x9b8], ebx
jmp 0x69047c2d
cmp ax, 9
je 0x6904894e
cmp ax, 0xa
jne 0x690488a8
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
nop
lea eax, [edx - 1]
cmp ecx, edi
ja 0x69048cd8
test edx, edx
jle 0x69048cd8
mov edx, eax
add dword [ebp - 0x9b8], 2
mov eax, dword [ebp - 0x9b8]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x6904893d
jbe 0x69047bf3
cmp ax, 0x22
je 0x690488f9
cmp ax, 0x5c
jne 0x6904889b
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x69047c18
cmp dword [ebp - 0x960], 4
ja 0x69048230
mov dword [ebp - 0x9c8], 0
mov dword [ebp - 0x9bc], 0
jne 0x69046f74
mov edx, dword [ebp - 0x95c]
xor eax, eax
test edx, edx
setne al
mov dword [ebp - 0x9c8], eax
jmp 0x69046f74
mov ebx, dword [ebp - 0x9b0]
mov edi, dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov dword [ebp - 0x724], 0
mov dword [ebp - 0x720], 0
mov dword [esp], ebx
mov dword [ebp - 0x9d4], edi
mov dword [ebp - 0x71c], 0
mov dword [ebp - 0x718], 0
mov dword [ebp - 0x714], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x41e
mov dword [esp + 4], 0x4a0
call edi
mov eax, dword [ebp - 0x9b4]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], 0x4a0
call eax
lea edx, [ebp - 0x974]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [ebp - 0x96c]
sub eax, dword [ebp - 0x974]
movzx edx, ax
mov dword [ebp - 0x9e4], eax
shl eax, 0x10
sub esp, 8
or eax, edx
mov dword [ebp - 0x9e0], edx
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x43b
mov dword [esp + 4], 0x4a0
call edi
mov edi, dword [sym.imp.user32.dll_GetSystemMetrics]
sub esp, 0x14
mov dword [esp], 0xc
call edi
sub esp, 4
mov ebx, eax
mov dword [esp], 0xb
call edi
sub esp, 4
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x20
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.comctl32.dll_ImageList_Create]
sub esp, 0x14
mov dword [ebp - 0x9d0], eax
lea eax, [ebp - 0x9a0]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionPoliciesComdlg32Placesbar
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyA]
sub esp, 0xc
test eax, eax
lea eax, [esi + 0x88]
je 0x69048ace
mov ebx, dword [ebp - 0x9d8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call ebx
lea eax, [esi + 0x8c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 5
mov dword [esp], 0
call ebx
lea eax, [esi + 0x90]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0x11
mov dword [esp], 0
call ebx
sub esp, 0xc
mov ebx, 0xa064
lea esi, [esi]
mov eax, dword [esi + ebx*4 - 0x28108]
test eax, eax
je 0x69047f4c
xor eax, eax
mov ecx, 0xad
lea edi, [ebp - 0x2cc]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2cc]
mov dword [esp + 0x10], 0x308
mov dword [esp + 0xc], 0x2b4
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + ebx*4 - 0x28108]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c0]
call eax
mov eax, dword [ebp - 0x2cc]
sub esp, 0x14
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9d0]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
mov eax, dword [ebp - 0x9b8]
call eax
mov byte [ebp - 0x71c], 0x24
mov dword [ebp - 0x724], eax
lea eax, [ebp - 0x2c0]
sub esp, 0xc
mov dword [ebp - 0x714], eax
lea eax, [ebp - 0x724]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x9b0]
mov dword [ebp - 0x720], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x9d4]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x444
mov dword [esp + 4], 0x4a0
call eax
mov eax, dword [ebp - 0x2cc]
sub esp, 0x14
mov dword [esp], eax
mov eax, dword [ebp - 0x9c4]
call eax
sub esp, 4
add ebx, 1
cmp ebx, 0xa069
jne 0x69047e68
mov ebx, dword [ebp - 0x9b0]
mov eax, dword [ebp - 0x9d0]
mov dword [esp + 0xc], 0
mov edi, dword [ebp - 0x9d4]
mov dword [esp + 8], 0x430
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4a0
mov dword [esp], ebx
call edi
mov eax, dword [ebp - 0x9e4]
sub esp, 0x14
lea edx, [eax + eax*2]
mov dword [esp + 0xc], 0
test edx, edx
lea eax, [edx + 3]
mov dword [esp], ebx
cmovns eax, edx
mov dword [esp + 8], 0x41f
mov dword [esp + 4], 0x4a0
sar eax, 2
shl eax, 0x10
or eax, dword [ebp - 0x9e0]
mov dword [esp + 0x10], eax
call edi
sub esp, 0x14
jmp 0x690472f4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x690786f1
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69046f2c
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x69048eeb
mov eax, ebx
shr eax, 0x10
je 0x690485aa
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x9bc], 0x6907869d
sub esp, 8
test eax, eax
jne 0x690485c3
cmp word [ebx], 0
je 0x69049197
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x69048050
mov edi, 0x224c
mov dword [ebp - 0x9bc], esi
lea ecx, [ebp - 0x51a]
mov word [ebp - 0x51c], di
lea edi, [ebp - 0x3fa]
mov dword [ebp - 0x9b8], ebx
jmp 0x690480bd
cmp ax, 9
je 0x69048970
cmp ax, 0xa
jne 0x690489fd
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
nop
lea eax, [edx - 1]
test edx, edx
jle 0x69048c9b
cmp ecx, edi
ja 0x69048c9b
mov edx, eax
add dword [ebp - 0x9b8], 2
mov eax, dword [ebp - 0x9b8]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x6904888a
jbe 0x69048083
cmp ax, 0x22
je 0x69048a4e
cmp ax, 0x5c
jne 0x690489f0
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x690480a8
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0xf1
mov dword [esp + 4], 0x410
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov eax, dword [esi]
sub esp, 0x14
mov eax, dword [eax + 0x34]
jmp 0x69047414
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 0xc], 0x690786f1
mov dword [esp + 8], str.FILEDLG95_FILETYPE_Init
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
mov ebx, dword [esi + 0x1c]
test ebx, ebx
jne 0x69047476
mov ecx, dword [esi + 0x18]
xor ebx, ebx
test ecx, ecx
jne 0x69047557
mov eax, dword [esi]
mov dword [ebp - 0x9b0], eax
mov eax, dword [ebp - 0x9b0]
mov dword [eax + 0x18], 0
jmp 0x69047719
mov dword [esp], edi
mov ebx, edi
call dword [sym.imp.user32.dll_CharLowerW]
sub esp, 4
cmp word [edi], 0
je 0x69049514
mov eax, edi
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x690481b8
sub eax, edi
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esi + 0x54], eax
mov edx, eax
sub esp, 0xc
sub edx, edi
lea esi, [esi]
mov eax, ebx
add ebx, 2
movzx eax, word [eax]
mov word [ebx + edx - 2], ax
test ax, ax
jne 0x690481f8
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x1c]
mov edx, dword [esi]
mov dword [ebp - 0x9b0], edx
mov ecx, eax
test eax, eax
jne 0x69047691
jmp 0x69048186
mov dword [ebp - 0x9c8], 1
mov dword [ebp - 0x9bc], 0
jmp 0x69046f74
mov dword [esp + 4], 0x6907880a
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
je 0x69048d7b
lea eax, [ebp - 0x850]
lea edi, [ebp - 0x51c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFullPathNameW]
sub esp, 0x10
test eax, eax
je 0x6904836c
mov ebx, dword [ebp - 0x850]
mov ecx, dword [esi + 0xc]
test ebx, ebx
je 0x69049e83
xor eax, eax
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x690482a8
mov eax, dword [ebp - 0x850]
xor edx, edx
mov word [eax], dx
mov edx, dword [esi + 8]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
cmp word [ebp - 0x51c], 0
je 0x69049b10
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x690482fa
sub eax, edi
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esi + 8], eax
mov ecx, eax
sub esp, 0xc
xor eax, eax
movzx edx, word [edi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x69048334
test byte [0x6907604c], 8
jne 0x69049725
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
sub esp, 8
jmp 0x690473eb
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
mov edx, dword [esi + 8]
sub esp, 8
test edx, edx
jne 0x6904735b
mov edx, dword fs:[0x18]
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x9c0], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x9b8], eax
call eax
xor edx, edx
sub esp, 0xc
mov dword [esi + 8], eax
mov word [eax], dx
mov ebx, dword [esi + 8]
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
sub esp, 4
mov dword [esp + 8], 0x104
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetModuleFileNameW]
mov edx, dword [ebp - 0x9c0]
sub esp, 0xc
test eax, eax
jne 0x69048f01
test byte [0x6907604c], 4
jne 0x69049000
mov eax, dword [esi + 8]
cmp word [eax], 0
je 0x69048431
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_PathFileExistsW]
sub esp, 4
test eax, eax
jne 0x690473eb
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [ebp - 0x9c8]
mov dword [esi + 8], 0
sub esp, 0xc
test ecx, ecx
jne 0x69047839
mov ecx, dword [ebp - 0x9bc]
test ecx, ecx
jne 0x6904784a
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x9b8]
call eax
sub esp, 0xc
mov dword [esi + 8], eax
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
test byte [0x6907604c], 8
je 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x69049d3d
mov eax, ebx
shr eax, 0x10
je 0x69049d25
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x6907869d
test edx, edx
jne 0x690496f8
cmp word [ebx], 0
je 0x69049fbd
mov eax, edx
lea edx, [edx + 1]
cmp word [ebx + eax*2 + 2], 0
jne 0x6904850a
mov ecx, 0x224c
mov dword [ebp - 0x9b8], eax
lea edi, [ebp - 0x3fa]
lea eax, [ebp - 0x51a]
mov word [ebp - 0x51c], cx
jmp 0x69048576
cmp dx, 9
je 0x69049a0a
cmp dx, 0xa
jne 0x69049997
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
mov ecx, dword [ebp - 0x9b8]
lea edx, [ecx - 1]
cmp eax, edi
ja 0x690496cc
test ecx, ecx
jle 0x690496cc
mov dword [ebp - 0x9b8], edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x690499f9
jbe 0x69048537
cmp dx, 0x22
je 0x690499e8
cmp dx, 0x5c
jne 0x6904998a
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x69048557
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov dword [ebp - 0x9bc], eax
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x69048e6e
mov eax, ebx
shr eax, 0x10
je 0x69048d15
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x69048853
cmp word [ebx], 0
je 0x69049155
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x69048608
mov eax, 0x224c
mov dword [ebp - 0x9c0], esi
lea ecx, [ebp - 0x51a]
lea edi, [ebp - 0x3fa]
mov word [ebp - 0x51c], ax
mov dword [ebp - 0x9b8], ebx
jmp 0x69048675
cmp ax, 9
je 0x6904892c
cmp ax, 0xa
jne 0x6904898e
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
nop
lea eax, [edx - 1]
test edx, edx
jle 0x6904881f
cmp ecx, edi
ja 0x6904881f
mov edx, eax
add dword [ebp - 0x9b8], 2
mov eax, dword [ebp - 0x9b8]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x6904895f
jbe 0x6904863b
cmp ax, 0x22
je 0x690489df
cmp ax, 0x5c
jne 0x69048981
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x69048660
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov dword [ebp - 0x9c0], eax
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x69048e78
mov eax, ebx
shr eax, 0x10
je 0x69048d2f
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x690487e8
cmp word [ebx], 0
je 0x69049176
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x69048710
mov edi, 0x224c
mov dword [ebp - 0x9c4], esi
lea ecx, [ebp - 0x51a]
mov word [ebp - 0x51c], di
lea edi, [ebp - 0x3fa]
mov dword [ebp - 0x9b8], ebx
jmp 0x69048775
cmp ax, 9
je 0x6904890a
cmp ax, 0xa
jne 0x69048a6c
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
nop
lea eax, [edx - 1]
cmp ecx, edi
ja 0x690487b4
test edx, edx
jle 0x690487b4
mov edx, eax
add dword [ebp - 0x9b8], 2
mov eax, dword [ebp - 0x9b8]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x6904891b
jbe 0x69048743
cmp ax, 0x22
je 0x69048abd
cmp ax, 0x5c
jne 0x69048a5f
mov esi, 0x5c5c
add ecx, 2
mov word [ecx - 2], si
jmp 0x69048768
mov byte [ecx], 0x22
mov esi, dword [ebp - 0x9c4]
test eax, eax
jle 0x6904918f
mov ebx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], bx
lea edi, [ebp - 0x51c]
mov byte [eax], 0
mov dword [esp], edi
call fcn.69075320
mov edx, eax
mov eax, dword [ebp - 0x9c0]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Before_manipulation__file___s__dir___s_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69047322
mov byte [ecx], 0x22
mov esi, dword [ebp - 0x9c0]
test eax, eax
jle 0x6904916e
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x51c]
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov eax, dword [ebp - 0x9bc]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.After_manipulation__file___s__dir___s_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69047407
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x690480a8
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x69048d49
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x69047c18
mov esi, 0x225c
add ecx, 2
mov word [ecx - 2], si
jmp 0x69047c18
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69048768
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69048768
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69048660
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69047c18
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69047c18
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69048660
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x690480a8
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x69048d53
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x69048660
mov esi, 0x225c
add ecx, 2
mov word [ecx - 2], si
jmp 0x69048660
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x69048d67
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x690480a8
mov esi, 0x225c
add ecx, 2
mov word [ecx - 2], si
jmp 0x690480a8
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x69048d5d
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x69048768
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x69048768
mov dword [ebp - 0x9f0], esi
lea edi, [ebp - 0x51c]
xor ebx, ebx
mov dword [ebp - 0x9dc], edi
mov edi, eax
lea eax, [ebp - 0x850]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.Place_d
mov dword [esp + 4], 8
mov dword [esp], eax
call fcn.69044ca0
mov edx, dword [ebp - 0x9a0]
mov dword [ebp - 0x51c], 4
test edx, edx
je 0x69048b6d
mov eax, dword [ebp - 0x9dc]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x998]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x99c]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x850]
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov edx, dword [ebp - 0x9a0]
sub esp, 0x18
test eax, eax
jne 0x69048b6d
cmp dword [ebp - 0x99c], 4
je 0x69048bf5
mov eax, dword [ebp - 0x9dc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x998]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x850]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0x9e8], edx
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x69048bc9
mov eax, dword [ebp - 0x998]
mov edx, dword [ebp - 0x9e8]
sub eax, 1
cmp eax, 1
jbe 0x69048d83
add ebx, 1
add edi, 4
cmp ebx, 5
jne 0x69048ae4
mov eax, dword [ebp - 0x9a0]
mov esi, dword [ebp - 0x9f0]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x69047e5f
mov esi, dword [ebp - 0x998]
mov eax, dword [ebp - 0x9d8]
mov dword [esp + 8], edi
mov dword [esp], 0
mov dword [esp + 4], esi
call eax
sub esp, 0xc
test eax, eax
jns 0x69048bc9
test byte [0x6907604c], 4
je 0x69048bc9
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Unrecognized_special_folder__lu._n
mov dword [esp + 8], str.filedlg_collect_places_pidls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 2
call fcn.69044e10
jmp 0x69048bc9
mov dword [esp], ebx
call dword [sym.imp.shlwapi.dll_PathIsDirectoryW]
sub esp, 4
test eax, eax
jne 0x6904968a
lea eax, [ebp - 0x974]
lea edi, [ebp - 0x51c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetFullPathNameW]
sub esp, 0x10
test eax, eax
jne 0x6904951e
mov edx, dword [esi + 8]
jmp 0x690473d9
mov byte [ecx], 0x22
mov esi, dword [ebp - 0x9bc]
test eax, eax
jle 0x690491b0
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x51c]
mov dword [esp], eax
call fcn.69075320
mov dword [ebp - 0x9bc], eax
jmp 0x690485c3
mov byte [ecx], 0x22
mov esi, dword [ebp - 0x9c0]
test eax, eax
jle 0x690491d1
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
lea edi, [ebp - 0x51c]
mov byte [eax], 0
mov dword [esp], edi
call fcn.69075320
mov dword [ebp - 0x9c0], eax
jmp 0x690486cd
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x69048853
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x690487e8
mov byte [ecx], al
add ecx, 1
jmp 0x69047c18
mov byte [ecx], al
add ecx, 1
jmp 0x69048660
mov byte [ecx], al
add ecx, 1
jmp 0x69048768
mov byte [ecx], al
add ecx, 1
jmp 0x690480a8
mov eax, 2
jmp 0x69047496
mov eax, dword [esi + 0xc]
jmp 0x6904733d
mov eax, dword [ebp - 0x51c]
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x9e8], ecx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x9ec], edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x9ec]
mov esi, eax
mov eax, dword [ebp - 0x9dc]
sub esp, 0xc
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x998]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x850]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov ecx, dword [ebp - 0x9e8]
sub esp, 0x18
test eax, eax
jne 0x69049967
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.shell32.dll_SHParseDisplayName]
sub esp, 0x14
test eax, eax
js 0x69049202
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x69048bc9
mov dword [ebp - 0x9c0], 0x69078696
jmp 0x690486cd
mov edx, 0x69078696
jmp 0x69048853
mov edx, 0x69078696
jmp 0x690487e8
lea edi, [ebp - 0x51c]
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69048e90
cmp word [eax + 2], 0
lea ebx, [eax + 2]
je 0x6904784a
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FindFirstFileW]
sub esp, 8
cmp eax, 0xffffffff
jne 0x69049a76
cmp word [ebx], 0
je 0x69048efa
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x69048ed0
sub eax, ebx
add eax, 2
add eax, ebx
cmp word [eax], 0
jne 0x69048e90
jmp 0x6904784a
mov dword [ebp - 0x9bc], 0x69078696
jmp 0x690485c3
mov eax, 2
jmp 0x69048ede
mov dword [esp + 4], 0x5c
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
test eax, eax
lea edx, [eax + 2]
mov eax, edi
cmovne eax, edx
xor ecx, ecx
mov edx, ebx
call fcn.69044f20
test byte [0x6907604c], 8
je 0x69048411
test ebx, ebx
je 0x6904a6dd
mov eax, ebx
shr eax, 0x10
je 0x69049be0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x69049a49
cmp word [ebx], 0
je 0x6904a4b6
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x69048f70
mov eax, 0x224c
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
jmp 0x69048fcc
cmp dx, 9
je 0x69049e8d
cmp dx, 0xa
jne 0x69049d54
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
test edi, edi
jle 0x69049a1b
lea edi, [ebp - 0x602]
cmp eax, edi
ja 0x69049a1b
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x69049aff
jbe 0x69048f91
cmp dx, 0x22
je 0x69049da5
cmp dx, 0x5c
jne 0x69049d47
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x69048fb1
mov eax, dword [edx + 0x34]
mov dword [esp + 0xc], str.GotModuleFileName_failed:__ld_n
mov dword [esp + 8], str.FILEDLG95_MRU_load_filename
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x6907604c
mov dword [esp], 2
call fcn.69044e10
jmp 0x69048411
mov eax, dword [esi + 8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x9b0]
mov dword [esp + 4], 0x8010
mov dword [esp], eax
call ebx
sub esp, 0x14
test eax, eax
je 0x69049bfa
test byte [0x6907604c], 8
je 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a6e7
mov eax, ebx
shr eax, 0x10
je 0x6904a719
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x6907869d
test edx, edx
jne 0x6904a6ec
cmp word [ebx], 0
je 0x6904a7b2
mov eax, edx
lea edx, [edx + 1]
cmp word [ebx + eax*2 + 2], 0
jne 0x690490b5
mov edi, 0x224c
mov dword [ebp - 0x9b8], eax
lea eax, [ebp - 0x51a]
mov word [ebp - 0x51c], di
lea edi, [ebp - 0x3fa]
jmp 0x69049121
cmp dx, 9
je 0x6904a808
cmp dx, 0xa
jne 0x6904a757
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
mov ecx, dword [ebp - 0x9b8]
lea edx, [ecx - 1]
cmp eax, edi
ja 0x6904a7e1
test ecx, ecx
jle 0x6904a7e1
mov dword [ebp - 0x9b8], edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x6904a73d
jbe 0x690490e2
cmp dx, 0x22
je 0x6904a7f7
cmp dx, 0x5c
jne 0x6904a74e
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x69049102
mov eax, 0x224c
mov byte [ebp - 0x51a], 0x22
lea ecx, [ebp - 0x51a]
mov word [ebp - 0x51c], ax
lea eax, [ecx + 1]
jmp 0x69048840
mov byte [ebp - 0x51a], 0x22
mov ecx, 0x224c
mov word [ebp - 0x51c], cx
lea ecx, [ebp - 0x51a]
lea eax, [ecx + 1]
jmp 0x690487d5
mov eax, 0x224c
mov byte [ebp - 0x51a], 0x22
lea ecx, [ebp - 0x51a]
mov word [ebp - 0x51c], ax
lea eax, [ecx + 1]
jmp 0x69048cbc
mov edx, 0x224c
mov byte [ebp - 0x51a], 0x22
lea ecx, [ebp - 0x51a]
mov word [ebp - 0x51c], dx
lea eax, [ecx + 1]
jmp 0x69048cf9
mov dword [esp + 0xc], str.Value_in_InitDir_is_not_an_existing_path__changed_to__nil__n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69048c93
test byte [0x6907604c], 4
je 0x69048e36
test esi, esi
je 0x6904a83d
mov eax, esi
shr eax, 0x10
je 0x6904a823
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x69049de2
movzx edx, word [esi]
test dx, dx
je 0x69049db6
mov ecx, eax
lea eax, [eax + 1]
cmp word [esi + ecx*2 + 2], 0
jne 0x6904924f
mov dword [ebp - 0x9e8], ecx
mov ecx, 0x224c
lea eax, [ebp - 0x51a]
mov word [ebp - 0x51c], cx
mov dword [ebp - 0x9ec], esi
jmp 0x690492ca
cmp dx, 9
je 0x6904a550
cmp dx, 0xa
jne 0x6904a4ee
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
mov edx, dword [ebp - 0x9e8]
lea ecx, [edx - 1]
test edx, edx
jle 0x6904a626
lea edx, [ebp - 0x3fa]
cmp eax, edx
ja 0x6904a626
mov edx, dword [ebp - 0x9ec]
mov dword [ebp - 0x9e8], ecx
movzx edx, word [edx]
add dword [ebp - 0x9ec], 2
cmp dx, 0xd
je 0x6904a4d4
jbe 0x6904927c
cmp dx, 0x22
je 0x6904a53f
cmp dx, 0x5c
jne 0x6904a4e5
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904929c
mov dword [esp + 4], 0x6907880a
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
je 0x69047820
lea eax, [ebp - 0x850]
lea edi, [ebp - 0x51c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFullPathNameW]
sub esp, 0x10
test eax, eax
je 0x690494e0
mov ecx, dword [ebp - 0x850]
mov ebx, dword [esi + 0xc]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x69049356
mov eax, dword [ebp - 0x850]
xor ebx, ebx
mov word [eax], bx
cmp word [ebp - 0x51c], 0
je 0x6904a1ee
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x69049381
sub eax, edi
lea ebx, [eax + 2]
mov eax, dword [esi + 8]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x9b8], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x9b8]
sub esp, 0xc
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esi + 8], eax
mov edx, eax
sub esp, 0xc
xor eax, eax
movzx ecx, word [edi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x690493e8
test byte [0x6907604c], 8
je 0x69048351
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a6ce
mov eax, ebx
shr eax, 0x10
je 0x6904a6b0
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x9b8], 0x6907869d
sub esp, 8
test eax, eax
jne 0x6904a238
cmp word [ebx], 0
je 0x6904a2fd
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x6904944b
mov eax, 0x224c
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
jmp 0x690494a7
cmp dx, 9
je 0x6904a4a5
cmp dx, 0xa
jne 0x6904a439
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
lea edx, [edi - 1]
test edi, edi
jle 0x6904a209
lea edi, [ebp - 0x602]
cmp eax, edi
ja 0x6904a209
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x6904a1f8
jbe 0x6904946c
cmp dx, 0x22
je 0x6904a494
cmp dx, 0x5c
jne 0x6904a430
mov ecx, 0x5c5c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904948c
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x60]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x9c8]
sub esp, 8
mov dword [ebp - 0x9b8], eax
test ecx, ecx
jne 0x69047839
jmp 0x69048479
mov eax, 2
jmp 0x690481c6
mov eax, dword [ebp - 0x974]
xor ecx, ecx
mov word [eax], cx
mov edx, dword [esi + 8]
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
cmp word [ebp - 0x51c], 0
je 0x6904a819
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x69049560
sub eax, edi
add eax, 2
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esi + 8], eax
mov ecx, eax
sub esp, 0xc
xor eax, eax
movzx edx, word [edi + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x6904959a
test byte [0x6907604c], 8
je 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a1e4
mov eax, ebx
shr eax, 0x10
je 0x6904a1cc
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, 0x6907869d
test edx, edx
jne 0x69049f37
cmp word [ebx], 0
je 0x69049f0d
mov edi, edx
lea edx, [edx + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x690495fa
mov eax, 0x224c
mov word [ebp - 0x850], ax
lea eax, [ebp - 0x84e]
jmp 0x69049656
cmp dx, 9
je 0x6904a60b
cmp dx, 0xa
jne 0x6904a5a9
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
test edi, edi
jle 0x6904a646
lea edi, [ebp - 0x72e]
cmp eax, edi
ja 0x6904a646
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x6904a58f
jbe 0x6904961b
cmp dx, 0x22
je 0x6904a5fa
cmp dx, 0x5c
jne 0x6904a5a0
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904963b
mov dword [esp], ebx
call dword [sym.imp.shlwapi.dll_PathAddBackslashW]
mov eax, ebx
sub esp, 4
cmp word [ebp - 0x724], 0
je 0x690496ab
add eax, 2
cmp word [eax], 0
jne 0x690496a2
xor edx, edx
mov ecx, 0x2a
jmp 0x690496bb
movzx ecx, word [edx + 0x69078850]
mov word [eax + edx], cx
add edx, 2
test cx, cx
jne 0x690496b4
jmp 0x69048c63
mov byte [eax], 0x22
test edx, edx
jle 0x69049fd6
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
lea eax, [ebp - 0x51c]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.No_initial_dir_specified__using_current_dir_of__s_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a72e
mov eax, ebx
shr eax, 0x10
je 0x6904a666
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x9b8], 0x6907869d
sub esp, 8
test eax, eax
jne 0x6904982f
cmp word [ebx], 0
je 0x6904a075
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x6904976b
mov edx, 0x224c
lea eax, [ebp - 0x722]
mov word [ebp - 0x724], dx
lea edx, [ebp - 0x602]
mov dword [ebp - 0x9bc], edx
jmp 0x690497c9
cmp dx, 9
je 0x69049e0f
cmp dx, 0xa
jne 0x69049ca1
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
cmp eax, dword [ebp - 0x9bc]
ja 0x690497fd
test edi, edi
jle 0x690497fd
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x69049c83
jbe 0x69049798
cmp dx, 0x22
je 0x69049cf2
cmp dx, 0x5c
jne 0x69049c94
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x690497b8
mov byte [eax], 0x22
test edx, edx
jle 0x6904a08b
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov dword [ebp - 0x9b8], eax
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x6904a585
mov eax, ebx
shr eax, 0x10
je 0x6904a56b
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x69049930
cmp word [ebx], 0
je 0x6904a18e
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x69049870
mov ecx, 0x224c
lea edx, [ebp - 0x602]
lea eax, [ebp - 0x722]
mov word [ebp - 0x724], cx
mov dword [ebp - 0x9bc], edx
jmp 0x690498ce
cmp dx, 9
je 0x69049d14
cmp dx, 0xa
jne 0x69049eab
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
cmp eax, dword [ebp - 0x9bc]
ja 0x69049902
test edi, edi
jle 0x69049902
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x69049d03
jbe 0x6904989d
cmp dx, 0x22
je 0x69049efc
cmp dx, 0x5c
jne 0x69049e9e
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x690498bd
mov byte [eax], 0x22
test edx, edx
jle 0x6904a1a4
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov eax, dword [ebp - 0x9b8]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Value_in_Filename_includes_path__overriding_InitialDir:__s___s_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69048351
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x69048bc9
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x69049e79
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x69048557
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x69048557
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x69048557
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x69048557
mov byte [eax], 0x22
test edx, edx
jle 0x6904a4cc
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.got_MRU_path:__s_n
mov dword [esp + 8], str.FILEDLG95_MRU_load_filename
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69048411
mov dword [ebp - 0x9bc], eax
mov eax, dword [esi + 8]
mov edi, dword fs:[0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x9b8]
call eax
sub esp, 0xc
mov dword [esi + 8], eax
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
test byte [0x6907604c], 8
jne 0x69049b1a
mov eax, dword [ebp - 0x9bc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x690473eb
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x69048fb1
mov eax, 2
jmp 0x69048308
mov eax, ebx
shr eax, 0x10
je 0x6904a0d3
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x69049f90
cmp word [ebx], 0
je 0x69049f64
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x69049b50
mov eax, 0x224c
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
jmp 0x69049bac
cmp dx, 9
je 0x6904a173
cmp dx, 0xa
jne 0x6904a107
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
test edi, edi
jle 0x6904a1ac
lea edi, [ebp - 0x602]
cmp eax, edi
ja 0x6904a1ac
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x6904a0ed
jbe 0x69049b71
cmp dx, 0x22
je 0x6904a162
cmp dx, 0x5c
jne 0x6904a0fe
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x69049b91
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x69049a49
mov eax, dword [esi + 8]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
test byte [0x6907604c], 8
je 0x690473eb
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x6904a6a6
mov eax, ebx
shr eax, 0x10
je 0x6904a68e
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
push edx
push edx
test eax, eax
jne 0x6904a684
mov eax, ebx
call fcn.69044ac0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.No_personal_or_desktop_dir__using_cwd_as_failsafe:__s_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x690473eb
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x690497b8
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a851
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x690497b8
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x690497b8
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x690498bd
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x690498bd
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
jmp 0x690496f8
mov eax, 0x69078696
jmp 0x690496f8
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a847
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x69048fb1
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x69048fb1
mov word [ebp - 0x51c], 0x224c
lea eax, [ebp - 0x51a]
mov byte [ebp - 0x51a], 0x22
lea edx, [eax + 1]
mov eax, dword [ebp - 0x9dc]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Failed_to_parse_custom_places_location___s._n
mov dword [esp + 8], str.filedlg_collect_places_pidls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 2
call fcn.69044e10
jmp 0x69048e36
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x690497b8
mov byte [eax], 0x22
test edx, edx
jle 0x6904a0a9
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
lea eax, [ebp - 0x51c]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.No_initial_dir_specified__using_personal_files_dir_of__s_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x690473eb
mov byte [eax], dl
add eax, 1
jmp 0x69048557
xor ebx, ebx
mov word [ecx], bx
jmp 0x690482c3
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x69048fb1
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a184
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x690498bd
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x690498bd
mov word [ebp - 0x850], 0x224c
lea eax, [ebp - 0x84e]
mov byte [ebp - 0x84e], 0x22
lea edx, [eax + 1]
lea eax, [ebp - 0x850]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Value_in_InitDir_changed_to__s_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x690473eb
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.No_initial_dir_specified__but_files_of_type__s_found_in_current__so_using_it_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x69049ae8
mov byte [ebp - 0x51a], 0x22
mov eax, 0x224c
mov word [ebp - 0x51c], ax
lea eax, [ebp - 0x51a]
lea edx, [eax + 1]
jmp 0x690496e7
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x69047940
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a06b
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x69047940
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x69047940
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x69047940
mov byte [eax], dl
add eax, 1
jmp 0x69047940
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
jmp 0x69049818
mov word [ebp - 0x51c], 0x224c
lea eax, [ebp - 0x51a]
mov byte [ebp - 0x51a], 0x22
lea edx, [eax + 1]
jmp 0x69049e3b
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
jmp 0x69049e4c
mov eax, 0x69078696
jmp 0x69049e4c
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x69049f90
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x69049b91
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a158
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x69049b91
mov byte [eax], dl
add eax, 1
jmp 0x69049b91
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x69049b91
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x69049b91
mov byte [eax], dl
add eax, 1
jmp 0x690498bd
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
jmp 0x6904991d
mov byte [eax], 0x22
test edx, edx
jle 0x69049f7a
mov ebx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], bx
jmp 0x69049f7d
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
jmp 0x69049f37
mov eax, 0x69078696
jmp 0x69049f37
mov ebx, 2
jmp 0x6904938f
mov edx, 0x725c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904948c
mov byte [eax], 0x22
test edx, edx
jle 0x6904a313
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov dword [ebp - 0x9b8], eax
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x6904a426
mov eax, ebx
shr eax, 0x10
je 0x6904a40c
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x6907869d
sub esp, 8
test eax, eax
jne 0x6904a350
cmp word [ebx], 0
je 0x6904a36b
mov edi, eax
lea eax, [eax + 1]
cmp word [ebx + edi*2 + 2], 0
jne 0x6904a279
mov eax, 0x224c
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
jmp 0x6904a2cd
cmp dx, 9
je 0x6904a3fb
cmp dx, 0xa
jne 0x6904a38f
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [edi - 1]
test edi, edi
jle 0x6904a329
lea edi, [ebp - 0x602]
cmp eax, edi
ja 0x6904a329
mov edi, edx
movzx edx, word [ebx]
add ebx, 2
cmp dx, 0xd
je 0x6904a31b
jbe 0x6904a29a
cmp dx, 0x22
je 0x6904a3ea
cmp dx, 0x5c
jne 0x6904a386
mov edx, 0x5c5c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904a2ba
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
jmp 0x6904a221
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904a2ba
mov byte [eax], 0x22
test edx, edx
jle 0x6904a381
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x724]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
mov edx, eax
mov eax, dword [ebp - 0x9b8]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Value_in_Filename_includes_path__overriding_initdir:__s___s_n
mov dword [esp + 0x14], eax
jmp 0x69049946
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
jmp 0x6904a33d
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a3e0
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x6904a2ba
mov byte [eax], dl
add eax, 1
jmp 0x6904a2ba
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904a2ba
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904a2ba
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x6904a350
mov edx, 0x69078696
jmp 0x6904a350
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a48a
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x6904948c
mov byte [eax], dl
add eax, 1
jmp 0x6904948c
mov edx, 0x225c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904948c
mov ecx, 0x745c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904948c
mov word [ebp - 0x724], 0x224c
lea eax, [ebp - 0x722]
mov byte [ebp - 0x722], 0x22
lea edx, [eax + 1]
jmp 0x69049a36
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904929c
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a561
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x6904929c
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904929c
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904929c
mov byte [eax], dl
add eax, 1
jmp 0x6904929c
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov edx, eax
jmp 0x69049930
mov edx, 0x69078696
jmp 0x69049930
mov ecx, 0x725c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904963b
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a61c
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x6904963b
mov ecx, 0x225c
add eax, 2
mov word [eax - 2], cx
jmp 0x6904963b
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x6904963b
mov byte [eax], dl
add eax, 1
jmp 0x6904963b
mov byte [eax], 0x22
test ecx, ecx
jle 0x69049dcc
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
jmp 0x69049dcf
mov byte [eax], 0x22
test edx, edx
jle 0x69049f23
mov edi, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], di
jmp 0x69049f26
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov dword [ebp - 0x9b8], eax
jmp 0x6904982f
mov eax, 0x6907869d
jmp 0x69049c56
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
jmp 0x69049c56
mov eax, 0x69078696
jmp 0x69049c56
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
mov dword [ebp - 0x9b8], eax
jmp 0x6904a238
mov dword [ebp - 0x9b8], 0x69078696
jmp 0x6904a238
mov edx, 0x69078696
jmp 0x69049a49
mov eax, 0x69078696
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.No_personal_dir__using_desktop_instead:__s_n
mov dword [esp + 8], str.FILEDLG95_InitControls
mov dword [esp + 4], 0x6907604c
mov dword [esp], 3
call fcn.69044e10
jmp 0x690473eb
movzx ebx, bx
mov dword [esp], 0x690786a7
mov dword [esp + 4], ebx
call fcn.69044a60
jmp 0x6904a6ec
mov dword [ebp - 0x9b8], 0x69078696
jmp 0x6904982f
mov edx, 0x725c
add eax, 2
mov word [eax - 2], dx
jmp 0x69049102
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x6904a7a8
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefFILEDLG95_Handle_GetFilePath]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x69049102
mov byte [eax], dl
add eax, 1
jmp 0x69049102
mov word [ebp - 0x51c], 0x224c
lea eax, [ebp - 0x51a]
mov byte [ebp - 0x51a], 0x22
lea edx, [eax + 1]
lea eax, [ebp - 0x51c]
mov byte [edx], 0
mov dword [esp], eax
call fcn.69075320
jmp 0x6904a6ec
mov byte [eax], 0x22
test edx, edx
jle 0x6904a7c8
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
jmp 0x6904a7cb
mov edx, 0x225c
add eax, 2
mov word [eax - 2], dx
jmp 0x69049102
mov ecx, 0x745c
add eax, 2
mov word [eax - 2], cx
jmp 0x69049102
mov eax, 2
jmp 0x6904956e
movzx eax, si
mov dword [esp], 0x690786a7
mov dword [esp + 4], eax
call fcn.69044a60
mov edx, eax
jmp 0x69049de2
mov edx, 0x69078696
jmp 0x69049de2
mov byte [eax], dl
add eax, 1
jmp 0x69048fb1
mov byte [eax], dl
add eax, 1
jmp 0x690497b8