Function at 0x450170
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d9a51
push eax
mov dword fs:[0], esp
sub esp, 0x9bc
xor eax, eax
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0x38
lea edi, [esp + 0xb8]
mov esi, 1
rep stosd dword es:[edi], eax
mov ecx, 0x38
lea edi, [esp + 0x2e4]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x9dc]
mov ebx, esi
test ecx, ecx
sete al
mov dword [0x654f84], eax
mov edx, dword [ebp + 0xec]
mov edi, dword [edx + 0xa44]
mov edx, dword [sym.imp.USER32.dll_wsprintfA]
test edi, edi
je 0x4503e1
mov eax, dword [esp + 0x9e0]
test eax, eax
je 0x4502cd
mov eax, dword [0x655b64]
push str.INPAGE.STY
push eax
lea ecx, [esp + 0x1a0]
push 0x504a08
push ecx
call edx
lea edx, [esp + 0xc8]
lea eax, [esp + 0x1a8]
push edx
push esi
push eax
call fcn.00445620
add esp, 0x1c
test eax, eax
je 0x4502bc
mov edx, dword [ebp + 0xec]
mov ecx, dword [ebp + 0x7c]
add edx, 0xa1c
lea eax, [esp + 0x3c4]
mov esi, dword [ecx]
push edx
push 0
push 0
push 0x11012
push eax
push str.StoryEditor
call fcn.00425060
mov ecx, dword [ebp + 0x7c]
add esp, 8
push eax
push ecx
call dword [esi + 0x14]
mov esi, eax
test esi, esi
jl 0x4503d3
mov ecx, dword [ebp + 0xec]
mov eax, dword [esp + 0x194]
mov ecx, dword [ecx + 0xa1c]
mov edx, dword [eax]
push ecx
push 0
push 0
push 0
push eax
call dword [edx + 0x1c]
mov esi, eax
test esi, esi
jl 0x4503d3
mov eax, dword [esp + 0x194]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa1c]
mov dword [esp + 0x194], ecx
jmp 0x4503cf
xor eax, eax
mov esi, 1
mov dword [0x654f84], eax
jmp 0x4505b5
mov edx, dword [ebp + 0x7c]
lea eax, [esp + 0x194]
push eax
push 0
mov esi, dword [edx]
push 0
push 0x10012
lea ecx, [esp + 0x3d4]
push 0
push ecx
push str.StoryEditor
call fcn.00425060
mov edx, dword [ebp + 0x7c]
add esp, 8
push eax
push edx
call dword [esi + 0x18]
mov esi, eax
test esi, esi
jl 0x4503d3
mov eax, dword [esp + 0x194]
lea ecx, [esp + 0x14]
push ecx
push 0
mov esi, dword [eax]
push 0x10
lea edx, [esp + 0x5d0]
push 0
push edx
push str.InPage100
call fcn.00425060
add esp, 8
push eax
mov eax, dword [esp + 0x1a8]
push eax
call dword [esi + 0x10]
mov esi, eax
test esi, esi
jl 0x4503d3
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0xbc]
push 0xd0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
mov eax, dword [esp + 0xb8]
and eax, 0x80000000
mov dword [0x5038c4], eax
je 0x4503c5
lea ecx, [esp + 0xb8]
push ecx
call fcn.00454580
lea edx, [esp + 0xc0]
push edx
call fcn.00454520
add esp, 8
lea edi, [esp + 0xca]
mov dword [esp + 0x10], 0x20
lea eax, [edi - 2]
push eax
call fcn.00454520
push edi
call fcn.00454550
mov eax, dword [esp + 0x18]
add esp, 8
add edi, 6
dec eax
mov dword [esp + 0x10], eax
jne 0x4503a5
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
jge 0x4503d5
xor ebx, ebx
xor eax, eax
mov dword [0x654f84], eax
jmp 0x4505b5
mov edi, dword [0x655aac]
test edi, edi
je 0x450524
mov eax, dword [0x655b64]
push str.INPAGE.STY
push eax
lea ecx, [esp + 0x1a0]
push 0x504a08
push ecx
call edx
mov edi, dword [esp + 0x9ec]
add esp, 0x10
test edi, edi
mov eax, edi
jne 0x450420
lea eax, [esp + 0x198]
xor ecx, ecx
lea edx, [esp + 0xb8]
test edi, edi
setne cl
push edx
push ecx
push eax
call fcn.00445620
mov ebx, eax
add esp, 0xc
test bx, bx
je 0x45054d
test edi, edi
je 0x450467
lea edx, [esp + 0x2e4]
lea eax, [esp + 0x198]
push edx
push 0
push eax
call fcn.00445620
add esp, 0xc
jmp 0x450548
mov ecx, dword [ebp + 0xec]
lea edx, [esp + 0x5c4]
push edx
push 0x104
mov dword [ecx + 0x134], 1
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x3c4]
lea ecx, [esp + 0x5c4]
push eax
push 0
push 0x503da0
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea edx, [esp + 0x7c4]
lea eax, [esp + 0x3c4]
push edx
push eax
call fcn.00425060
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x7c4]
mov dword [esp + 0x10], 0
push ecx
push 0
push 0x4011012
push edx
call dword [sym.imp.ole32.dll_StgCreateDocfile]
test eax, eax
mov eax, dword [esp + 0x194]
jge 0x4504f7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4510c5
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
push ecx
push 0
push 0
push 0
push eax
call dword [edx + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x194]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x194], eax
jmp 0x450548
test ecx, ecx
je 0x4505c6
mov edx, dword [esp + 0x9dc]
lea ecx, [esp + 0xb8]
push ecx
push 1
push edx
call fcn.00445620
add esp, 0xc
mov ebx, eax
test bx, bx
jne 0x4505b0
mov ecx, dword [0x654300]
dec ecx
test esi, esi
mov dword [0x654300], ecx
jge 0x4510c5
add esi, 0x7148
push 0x64b0f8
and esi, 0xffff
shl esi, 0x10
or esi, 0x1906
push esi
push 0x40
push 0
call fcn.004c8a30
mov eax, dword [ebp + 0xec]
add esp, 0x10
mov ecx, dword [eax + 0x3c]
push 4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4510c5
mov eax, dword [0x654f84]
test esi, esi
jl 0x450ffe
test bx, bx
je 0x450ffe
mov ecx, dword [ebp + 0xec]
neg eax
sbb eax, eax
and eax, 0x654f88
push eax
call fcn.00430cc0
mov esi, eax
test esi, esi
mov dword [esp + 0x24], esi
jl 0x450ffe
mov eax, dword [0x654f84]
test eax, eax
jne 0x450603
test byte [esp + 0xbc], 2
lea eax, [esp + 0x2e4]
jne 0x45060a
lea eax, [esp + 0xb8]
mov edx, dword [ebp + 0xec]
push edx
push eax
call fcn.00445010
mov ebx, eax
add esp, 8
test bx, bx
mov dword [esp + 0x10], ebx
je 0x450ffe
mov eax, dword [esp + 0xbc]
mov ecx, dword [ebp + 0xec]
and eax, 2
mov dword [ecx + 0x134], eax
mov eax, dword [ebp + 0xec]
push eax
push 0
mov edx, dword [eax + 0x3c]
push edx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [ebp + 0xec]
mov eax, dword [0x655ff8]
push 0
push eax
mov edx, dword [ecx + 0x3c]
push 0
push edx
push 0
push 0
push 0
push 0
push 0x46000000
push 0x64b0f8
push str.Display
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0x14]
push ecx
lea ecx, [eax + 0x32e]
call sub.MFC42.DLL_CWnd::Attach
mov edx, dword [0x655ab0]
push 1
push edx
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x654f84]
test eax, eax
jne 0x45075f
test dword [esp + 0xb8], 0x40000000
je 0x450739
mov eax, dword [ebp + 0xec]
lea ecx, [eax + 0x3b6]
lea edx, [eax + 0x38e]
push ecx
mov cx, word [eax + 0x2a2]
dec cx
push edx
push ecx
push eax
call fcn.004307e0
mov edx, dword [ebp + 0xec]
xor esi, esi
add esp, 0x10
mov word [edx + 0x4ea], ax
mov eax, dword [ebp + 0xec]
cmp word [eax + 0x4ea], si
jbe 0x450739
mov ecx, esi
push 1
and ecx, 0xffff
push 0x42f360
mov dx, word [eax + ecx*2 + 0x38e]
push edx
push eax
call fcn.0045c700
mov eax, dword [ebp + 0xec]
add esp, 0x10
inc esi
cmp si, word [eax + 0x4ea]
jb 0x450708
mov eax, dword [0x654f84]
mov ecx, dword [ebp + 0xec]
push eax
push 0
push 3
push ecx
call fcn.0042f000
mov ecx, dword [ebp + 0xec]
add esp, 0x10
push 0
call fcn.00431940
mov edx, dword [ebp + 0xec]
mov eax, dword [edx + 0x134]
test eax, eax
je 0x4509db
push 0
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_COleStreamFile::COleStreamFile
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x6c]
mov dword [esp + 0x9e0], 0
call fcn.00445500
mov eax, dword [ebp + 0xec]
mov ecx, dword [esp + 0x194]
mov byte [esp + 0x9d4], 1
mov dword [eax + 0xa1c], ecx
mov edx, dword [ebp + 0xec]
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0x60]
mov dword [edx + 0x2bc], eax
mov eax, dword [ebp + 0xec]
mov edx, dword [str.InPage100]
push ecx
mov ecx, dword [eax + 0xa1c]
push 0x10
push edx
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_COleStreamFile::OpenStream
mov edx, dword [esp + 0xb8]
push 0
and edx, 0xfffffff
lea ecx, [esp + 0x2c]
sub edx, 0x10005
neg edx
sbb edx, edx
and edx, 0xfffffffc
add edx, 0xd4
push edx
call sub.MFC42.DLL_COleStreamFile::Seek
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa3c]
test ecx, ecx
je 0x450833
push eax
call fcn.00419690
mov ecx, eax
call fcn.004511f0
push 1
push 0
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_COleStreamFile::Seek
push 2
push 0
lea ecx, [esp + 0x30]
mov esi, eax
call sub.MFC42.DLL_COleStreamFile::Seek
xor ebx, ebx
lea ecx, [esp + 0x28]
push ebx
push esi
mov edi, eax
call sub.MFC42.DLL_COleStreamFile::Seek
push ebx
push 0x1000
lea eax, [esp + 0x30]
push 1
push eax
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CArchive::CArchive
mov ecx, dword [ebp + 0xec]
mov byte [esp + 0x9d4], 2
mov ecx, dword [ecx + 0xa3c]
cmp ecx, ebx
je 0x45089a
call fcn.00419690
mov dword [esp + 0x74], eax
jmp 0x45089e
mov dword [esp + 0x74], ebx
cmp edi, 0x7530
mov dword [esp + 0x78], ebx
jle 0x4508d5
mov eax, dword [0x655ff8]
lea edx, [esp + 0x198]
push 0x100
push edx
push 0x18d8
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x198]
push 1
push ecx
push edi
jmp 0x4508d9
push ebx
push ebx
push 0xffffffffffffffff
call fcn.004ce9e0
add esp, 0xc
lea edx, [esp + 0x74]
lea eax, [esp + 0x28]
xor edi, edi
cmp word [0x502f98], bx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jbe 0x45093b
xor esi, esi
mov ecx, dword [0x6559e0]
mov eax, dword [esi + ecx + 0x5a]
cmp eax, ebx
je 0x450927
mov ecx, dword [ebp + 0xec]
lea edx, [esp + 0x40]
push edx
push 0x440ed0
push ecx
call eax
add esp, 0xc
cmp ax, bx
jne 0x45093b
xor edx, edx
inc edi
mov dx, word [0x502f98]
add esi, 0xee
cmp edi, edx
jl 0x4508fe
call fcn.004ceb00
lea ecx, [esp + 0x74]
call sub.MFC42.DLL_CArchive::Close
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_COleStreamFile::Flush
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_COleStreamFile::Close
mov eax, dword [esp + 0x3c0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x3c0]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp + 0xec]
mov edi, dword [esp + 0x188]
or ecx, 0xffffffff
xor eax, eax
add edx, 0x138
mov byte [esp + 0x9d4], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x74]
call fcn.004d7e8a
lea ecx, [esp + 0x60]
mov byte [esp + 0x9d4], 0
call fcn.004455c0
lea ecx, [esp + 0x28]
mov dword [esp + 0x9d4], 0xffffffff
call fcn.004d7e9c
mov eax, dword [0x655aac]
test eax, eax
je 0x4509f4
mov ecx, dword [ebp + 0xec]
mov dword [ecx + 0x134], 1
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa44]
test ecx, ecx
jne 0x450dce
mov edx, dword [0x655ff8]
mov eax, dword [eax + 0x3c]
push 0
push edx
mov edx, dword [0x655bac]
xor ecx, ecx
mov cx, word [0x6559c8]
push 0
push eax
xor eax, eax
mov ax, word [0x655aba]
push ecx
and edx, 0xffff
xor ecx, ecx
mov cx, word [0x654fa0]
add edx, eax
lea edx, [edx + ecx + 2]
push edx
push 0
push 0
push 0x40000000
push 0x64b0f8
push str.PageWindow
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [ebp + 0xec]
push 0xffff
mov dword [ecx + 0x44], eax
mov edx, dword [ebp + 0xec]
push edx
call fcn.00425d50
mov ecx, dword [ebp + 0xec]
lea eax, [esp + 0x7c]
push eax
mov dx, word [ecx + 0xc]
push edx
call fcn.004c8be0
mov eax, dword [ebp + 0xec]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
add esp, 0x10
mov ecx, dword [eax + 0x44]
push 4
push ecx
call edi
mov ebx, dword [sym.imp.USER32.dll_SetWindowTextA]
lea edx, [esp + 0x74]
push edx
push eax
call ebx
mov eax, dword [ebp + 0xec]
mov esi, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov ecx, dword [eax + 0x38]
push ecx
call esi
mov edx, dword [ebp + 0xec]
neg eax
sbb eax, eax
inc eax
mov dword [edx + 0xa24], eax
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0x40]
push ecx
call esi
mov edx, dword [ebp + 0xec]
push 8
neg eax
sbb eax, eax
inc eax
mov dword [edx + 0xa28], eax
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0x44]
push ecx
call edi
mov edi, eax
push 0
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
call esi
neg eax
sbb eax, eax
mov edx, dword [ebp + 0xec]
inc eax
push 8
push edi
mov dword [edx + 0xa2c], eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
call esi
mov ecx, dword [ebp + 0xec]
push 1
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 0xa30], eax
mov edx, dword [0x655ab4]
push edx
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x654f84]
mov ecx, dword [ebp + 0xec]
test eax, eax
jne 0x450cf5
mov eax, dword [ecx + 0x456]
push 1
push eax
call fcn.0043d190
mov ecx, dword [ebp + 0xec]
mov esi, dword [sym.imp.USER32.dll_SetScrollPos]
push eax
push 2
mov edx, dword [ecx + 0x38]
push edx
call esi
mov ecx, dword [ebp + 0xec]
push 1
mov eax, dword [ecx + 0x45a]
push eax
call fcn.0043d1c0
mov ecx, dword [ebp + 0xec]
push eax
push 2
mov edx, dword [ecx + 0x40]
push edx
call esi
mov eax, dword [ebp + 0xec]
lea edx, [esp + 0x29c]
push 0
push edx
mov eax, dword [eax + 0xa1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [esp + 0x29c]
cmp word [eax], 0
je 0x450c4a
mov eax, dword [ebp + 0xec]
add eax, 0x138
mov dword [esp + 0x14], eax
cmp byte [eax], 0
je 0x450c4a
test dword [esp + 0xb8], 0x40000000
jne 0x450c4a
mov edx, dword [esp + 0x9dc]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0xec]
mov edx, dword [ecx + 0x3c]
push edx
call ebx
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa3c]
call fcn.00419690
mov ecx, dword [esp + 0x9dc]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x58]
jmp 0x450d0c
mov eax, dword [0x655ff8]
lea edx, [esp + 0x198]
push 0x100
push edx
push 0x5208
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [0x6562e0]
lea edi, [esp + 0x198]
inc eax
or ecx, 0xffffffff
mov dword [0x6562e0], eax
push eax
xor eax, eax
push 0x50166c
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esp + ecx + 0x1a0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0xec]
add esp, 0xc
lea edx, [esp + 0x198]
mov ecx, dword [eax + 0x3c]
push edx
push ecx
call ebx
mov edx, dword [ebp + 0xec]
mov ecx, dword [edx + 0xa3c]
call fcn.00419690
mov edx, dword [eax]
lea ecx, [esp + 0x198]
push ecx
mov ecx, eax
call dword [edx + 0x58]
test dword [esp + 0xb8], 0x40000000
je 0x450ce9
mov edx, dword [ebp + 0xec]
mov byte [edx + 0x138], 0
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x64]
jmp 0x450d0c
mov byte [ecx + 0x138], 0
mov edx, dword [ebp + 0xec]
mov dword [edx + 0x134], 0
mov ecx, dword [ebp + 0xec]
lea eax, [esp + 0x40]
push eax
mov edx, dword [ecx + 0x3c]
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 0xec]
and eax, 0xffff
shl eax, 0x10
and ecx, 0xffff
or eax, ecx
push eax
mov eax, dword [edx + 0x3c]
push 0
push 5
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa44]
test ecx, ecx
jne 0x450dce
mov ecx, dword [eax + 0x44]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push ecx
call esi
mov edx, dword [ebp + 0xec]
push 5
mov eax, dword [edx + 0x38]
push eax
call esi
mov ecx, dword [ebp + 0xec]
push 5
mov edx, dword [ecx + 0x40]
push edx
call esi
mov eax, dword [ebp + 0xec]
push 5
mov ecx, dword [eax + 0x54]
push ecx
call esi
mov edx, dword [ebp + 0xec]
push 5
mov eax, dword [edx + 0x4c]
push eax
call esi
mov ecx, dword [ebp + 0xec]
push 5
mov edx, dword [ecx + 0x48]
push edx
call esi
mov eax, dword [ebp + 0xec]
push 5
mov ecx, dword [eax + 0x50]
push ecx
call esi
mov edx, dword [ebp + 0xec]
push 5
mov eax, dword [edx + 0x14]
push eax
call esi
mov ecx, dword [ebp + 0xec]
push 5
mov ecx, dword [ecx + 0xa3c]
call sub.MFC42.DLL_CWnd::ShowWindow
mov edx, dword [ebp + 0xec]
push 1
push edx
call fcn.004bc7b0
mov ecx, dword [0x654f84]
add esp, 8
test ecx, ecx
je 0x450e1a
mov eax, dword [0x654f8c]
push ecx
mov ecx, dword [ebp + 0xec]
push eax
push 3
push ecx
call fcn.0042f000
mov ecx, dword [0x654f84]
add esp, 0x10
mov eax, dword [ebp + 0xec]
mov edx, dword [eax + 0xa44]
test edx, edx
jne 0x450fb3
test ecx, ecx
je 0x450fb3
mov dx, word [eax + 0x2ba]
push 0
push 0
push 1
push edx
push eax
call fcn.0042f060
mov eax, dword [ebp + 0xec]
mov cx, word [eax + 0x2a2]
dec cx
push ecx
push eax
call fcn.00426860
mov eax, dword [ebp + 0xec]
mov edx, dword [eax + 4]
mov dword [eax + 0x456], edx
mov ecx, dword [eax + 8]
mov dword [eax + 0x45a], ecx
mov eax, dword [ebp + 0xec]
mov word [esp + 0x34], 0x114
lea edx, [esp + 0x34]
mov ecx, dword [eax + 0x36e]
push edx
push ecx
call fcn.00453820
mov edx, dword [ebp + 0xec]
mov eax, dword [esp + 0x3e]
lea ecx, [esp + 0x3c]
mov dword [edx + 0x2b2], eax
mov edx, dword [ebp + 0xec]
mov word [esp + 0x3c], 0x115
push ecx
mov eax, dword [edx + 0x36e]
push eax
call fcn.00453820
mov ecx, dword [ebp + 0xec]
mov edx, dword [esp + 0x46]
add esp, 0x2c
lea eax, [esp + 0x50]
mov dword [ecx + 0x2b6], edx
mov ecx, dword [ebp + 0xec]
push eax
mov edx, dword [ecx + 0x14]
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp + 0xec]
mov cx, word [eax + 0xa66]
test cx, cx
je 0x450f23
cmp cx, 2
je 0x450f23
mov ecx, dword [0x655b18]
mov edx, ecx
neg edx
shl edx, 2
sub edx, ecx
mov ecx, dword [eax + 0x456]
add ecx, edx
mov dword [eax + 0x456], ecx
jmp 0x450f79
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x50]
sub ecx, ebx
mov word [eax + 0x34], cx
mov esi, dword [ebp + 0xec]
mov ecx, dword [esp + 0x58]
mov edx, esi
mov ax, word [edx + 0xc]
mov edx, dword [esp + 0x50]
sub ecx, edx
push eax
imul ecx, dword [0x655b18]
push ecx
call fcn.004017f0
mov ecx, dword [0x655b18]
mov edi, dword [esi + 0xa4e]
add esp, 8
lea edx, [ecx + ecx*4]
add edx, edi
sub edx, eax
mov eax, dword [esi + 0x456]
add eax, edx
mov dword [esi + 0x456], eax
mov ecx, dword [0x655b1c]
mov eax, dword [ebp + 0xec]
mov edx, ecx
mov esi, dword [eax + 0x45a]
neg edx
shl edx, 2
sub edx, ecx
add esi, edx
mov dword [eax + 0x45a], esi
mov eax, dword [ebp + 0xec]
mov cx, word [eax + 0x294]
push ecx
push eax
call fcn.00429b70
add esp, 8
mov eax, dword [ebp + 0xec]
mov ecx, dword [eax + 0xa44]
test ecx, ecx
je 0x450fcf
mov edx, dword [eax + 0x24]
mov eax, dword [edx + eax + 0x130]
jmp 0x450fd2
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [ebp + 0xec]
push 0
push 0
push 2
mov cx, word [eax + 0x2ba]
push ecx
push eax
call fcn.0042f060
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
add esp, 0x14
test esi, esi
mov dword [0x5038c4], 0
jl 0x451043
test bx, bx
je 0x451043
mov eax, dword [esp + 0x9e0]
mov edx, dword [esp + 0x9dc]
neg eax
sbb eax, eax
push 0
and eax, 0xfffffc25
push edx
add eax, 0x4e20
push eax
call fcn.004404a0
add esp, 0xc
mov eax, 1
jmp 0x4510c7
mov ecx, dword [0x654300]
dec ecx
test esi, esi
mov dword [0x654300], ecx
jge 0x45109f
add esi, 0x7148
push 0x64b0f8
and esi, 0xffff
shl esi, 0x10
or esi, 0x1906
push esi
push 0x40
push 0
call fcn.004c8a30
mov eax, dword [ebp + 0xec]
add esp, 0x10
mov ecx, dword [eax + 0x3c]
push 4
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x4510aa
mov ecx, dword [ebp + 0xec]
call fcn.004311a0
mov edx, dword [0x655ab0]
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push 1
push edx
call esi
mov eax, dword [0x655ab4]
push 1
push eax
call esi
xor eax, eax
mov ecx, dword [esp + 0x9cc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x9c8
ret 8