Function at 0x454f70
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x560a63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1fc
mov eax, dword [0x5c58d0]
push ebx
push ebp
mov ebp, dword [esp + 0x214]
xor ebx, ebx
mov dword [esp + 8], ebx
cmp dword [ebp + 0xcc], ebx
mov dword [esp + 0x200], eax
mov eax, dword [0x68c9b4]
mov eax, dword [eax + 0xc]
push esi
jne 0x454fce
lea esi, [esp + 0x14]
call fcn.00401c80
mov dword [esp + 0x210], ebx
mov ebx, 1
jmp 0x454fe7
lea esi, [esp + 0x10]
call fcn.00427010
mov dword [esp + 0x210], 1
mov ebx, 2
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x10], ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_10]
test bl, 2
je 0x45500c
and ebx, 0xfffffffd
lea ecx, [esp + 0x10]
mov dword [esp + 0xc], ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
test bl, 1
mov dword [esp + 0x210], 3
je 0x45502d
and ebx, 0xfffffffe
lea ecx, [esp + 0x14]
mov dword [esp + 0xc], ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
mov byte [esp + 0x210], 9
mov eax, dword [ebp + 0xcc]
mov ecx, dword [0x68c9b4]
test eax, eax
mov eax, dword [ecx + 0x34]
lea esi, [esp + 0x10]
jne 0x4550b5
call fcn.004020d0
mov ebp, eax
mov byte [esp + 0x210], 0xa
mov edx, dword [0x68c9b4]
mov eax, dword [edx + 0x34]
lea esi, [esp + 0x14]
call fcn.004020b0
mov byte [esp + 0x210], 0xb
mov ecx, dword [ebp]
mov edx, dword [eax]
push ecx
push edx
push 0x5398
jmp 0x4550ea
call fcn.004020f0
mov ebp, eax
mov byte [esp + 0x210], 0xc
mov edx, dword [0x68c9b4]
mov eax, dword [edx + 0x34]
lea esi, [esp + 0x14]
call fcn.004020b0
mov byte [esp + 0x210], 0xd
mov ecx, dword [ebp]
mov edx, dword [eax]
push ecx
push edx
push 0x53a2
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.MFC71.DLL_ATL::CStringT::FormatMessageA_1]
lea ecx, [esp + 0x24]
add esp, 0x10
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x10]
mov byte [esp + 0x210], 9
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov ecx, dword [esp + 0x218]
mov eax, dword [ecx + 0xcc]
test eax, eax
jne 0x455144
mov edx, dword [0x68c9b4]
mov eax, dword [edx + 0x34]
lea esi, [esp + 0x10]
call fcn.004020d0
mov byte [esp + 0x210], 0xe
or ebx, 4
jmp 0x455163
mov eax, dword [0x68c9b4]
mov eax, dword [eax + 0x34]
lea esi, [esp + 0x14]
call fcn.004020f0
mov dword [esp + 0x210], 0xf
or ebx, 8
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x28]
push 0x57e69c
push ecx
mov dword [esp + 0x18], ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format_1]
add esp, 0xc
test bl, 8
je 0x45518f
lea ecx, [esp + 0x14]
and ebx, 0xfffffff7
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
test bl, 4
mov dword [esp + 0x210], 9
je 0x4551a9
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0xf002
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::LoadStringA_1]
push 0x58474c
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_6]
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x14]
push eax
call fcn.00407b80
lea ecx, [esp + 0x30]
push ecx
push eax
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x228], 0x10
call fcn.004079b0
push 0
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x234], 0x11
call fcn.00407b80
add esp, 0x24
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x214], 0x12
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0xc]
mov byte [esp + 0x210], 9
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00407b80
lea ecx, [esp + 0x38]
push ecx
push eax
lea edx, [esp + 0x48]
push edx
mov byte [esp + 0x228], 0x13
call fcn.004079b0
push 0
push eax
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x234], 0x14
call fcn.00407b80
add esp, 0x24
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x214], 0x15
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_2]
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x38]
mov byte [esp + 0x210], 9
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_3]
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_9]
mov byte [esp + 0x210], 0x16
mov ecx, dword [esp + 0x21c]
push ecx
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::LoadStringA_1]
mov edx, dword [esp + 0x220]
mov ecx, dword [edx]
mov eax, dword [ecx - 0xc]
push 0
neg eax
push 0
sbb eax, eax
and eax, ecx
mov ecx, dword [esp + 0x20]
push ecx
push 0x1006
push 0
push eax
push 0
lea ecx, [esp + 0x58]
call fcn.00547816
mov byte [esp + 0x210], 0x17
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
call sub.MFC71.DLL_CFileDialog::GetOFN_1
mov dword [eax + 0x30], esi
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x3c]
call sub.MFC71.DLL_CFileDialog::GetOFN_1
push 0x104
mov ecx, edi
mov dword [eax + 0xc], esi
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetBuffer_2]
lea ecx, [esp + 0x3c]
mov esi, eax
call sub.MFC71.DLL_CFileDialog::GetOFN_1
mov dword [eax + 0x1c], esi
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x3c]
call sub.MFC71.DLL_CFileDialog::GetOFN_1
lea ecx, [esp + 0x3c]
mov dword [eax + 0x2c], esi
call sub.MFC71.DLL_CFileDialog::DoModal
push 0xffffffffffffffff
mov ecx, edi
mov esi, eax
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::ReleaseBuffer_1]
cmp esi, 1
lea ecx, [esp + 0x3c]
sete bl
mov byte [esp + 0x210], 0x16
call sub.MFC71.DLL_CFileDialog::CFileDialog
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov ecx, dword [esp + 0x208]
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1fc]
mov al, bl
pop ebx
call fcn.0054939e
add esp, 0x208
ret 0xc