Function at 0x4052a0
Capabilities:
Access peb ldr_data
Get graphical window text
Get kernel32 base address
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp + 8]
push ebx
sub esp, 0x258
mov eax, dword [edi + 4]
mov edx, dword [edi]
movzx ecx, word [0x40d228]
mov esi, dword [edi + 8]
mov ebx, dword [edi + 0xc]
cmp ecx, eax
je 0x405438
cmp eax, 0x11
ja 0x4052f0
test eax, eax
je case.0x4052df.0
cmp eax, 0x11
ja case.0x4052df.0
jmp dword [eax*4 + 0x40a1a8]
cmp eax, 0x233
je 0x405b08
ja 0x405638
cmp eax, 0x111
je 0x405b58
cmp eax, 0x117
jne case.0x4052df.0
mov dword [esp + 0xc], 0
mov edi, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc6
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
mov ebx, dword [sym.imp.user32.dll_EnableMenuItem]
sub esp, 0x10
test eax, eax
sete al
mov dword [esp + 4], 0x110
movzx eax, al
mov dword [esp], esi
mov dword [esp + 8], eax
call ebx
sub esp, 0xc
mov dword [esp], 1
call dword [sym.imp.user32.dll_IsClipboardFormatAvailable]
sub esp, 4
test eax, eax
sete al
mov dword [esp + 4], 0x113
movzx eax, al
mov dword [esp], esi
mov dword [esp + 8], eax
call ebx
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb0
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
mov edx, eax
sub esp, 0x10
shr edx, 0x10
mov dword [esp + 4], 0x111
cmp dx, ax
mov dword [esp], esi
sete al
movzx eax, al
mov edi, eax
mov dword [esp + 8], eax
call ebx
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0x112
mov dword [esp], esi
call ebx
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0x114
mov dword [esp], esi
call ebx
mov eax, dword [0x40c02c]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
sub esp, 4
test eax, eax
sete al
mov dword [esp + 4], 0x116
movzx eax, al
mov dword [esp], esi
mov dword [esp + 8], eax
call ebx
sub esp, 0xc
xor eax, eax
jmp 0x4059dd
mov eax, dword [ebx + 0xc]
test al, 0x40
je 0x405449
mov dword [0x40c028], 0
test al, 8
jne 0x4057b0
test al, 0x10
jne 0x405660
test al, 0x20
je case.0x405b82.263
movdqu xmm4, xmmword [ebx]
movups xmmword [0x40d1e4], xmm4
movdqu xmm5, xmmword [ebx + 0x10]
movups xmmword [0x40d1f4], xmm5
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [0x40d204], eax
mov dword [0x40d208], edx
mov eax, dword [ebx + 0x10]
cmp word [eax], 0
je 0x406473
mov esi, eax
lea esi, [esi]
add esi, 2
cmp word [esi], 0
jne 0x405498
sub esi, eax
sar esi, 1
mov dword [ebp - 0x234], esi
mov dword [esp + 0xc], 0
mov edi, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb1
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
sub esp, 0x10
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
lea ecx, [eax + 1]
sub esp, 4
lea edx, [ecx + ecx]
mov dword [ebp - 0x230], ecx
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_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je case.0x405b82.263
mov ecx, dword [ebp - 0x230]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [ebp - 0x214]
sub esp, 0xc
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb0
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
mov eax, dword [ebx + 0xc]
sub esp, 0x10
and eax, 5
cmp eax, 1
je 0x405b90
cmp eax, 5
jne case.0x405b82.263
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x214]
lea eax, [esi + eax*2]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrStrW]
sub eax, esi
sub esp, 8
sar eax, 1
mov dword [ebp - 0x214], eax
add eax, esi
jne 0x4055b3
mov dword [ebp - 0x214], 0xffffffff
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]
mov eax, dword [ebp - 0x214]
sub esp, 0xc
cmp eax, 0xffffffff
je 0x4064b8
mov edx, dword [ebp - 0x234]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xb1
add edx, eax
mov dword [esp + 0xc], edx
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
mov eax, dword [ebx + 0x14]
sub esp, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
sub esp, 0x10
jmp 0x4054d6
cmp eax, 0x307
je case.0x405b82.263
mov dword [edi + 0xc], ebx
mov dword [edi + 8], esi
mov dword [edi + 4], eax
mov dword [edi], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp dword [sym.imp.user32.dll_DefWindowProcW]
movdqu xmm2, xmmword [ebx]
movups xmmword [0x40d1e4], xmm2
movdqu xmm3, xmmword [ebx + 0x10]
movups xmmword [0x40d1f4], xmm3
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [0x40d208], edx
mov dword [0x40d204], eax
mov edx, dword [ebx + 0x10]
cmp word [edx], 0
je 0x406482
mov eax, edx
lea esi, cs:[esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4056a0
sub eax, edx
sar eax, 1
mov dword [ebp - 0x230], eax
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
lea edi, [eax + 1]
sub esp, 4
lea edx, [edi + edi]
mov dword [esp + 4], 0
mov dword [esp + 8], edx
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_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x406628
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [ebp - 0x224]
mov edi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0xc
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x214]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xb0
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
mov eax, dword [ebx + 0xc]
sub esp, 0x10
mov ecx, eax
and ecx, 5
cmp ecx, 1
je 0x4062f8
cmp ecx, 5
jne 0x405459
mov ecx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x224]
mov edx, dword [ebp - 0x230]
sub eax, ecx
cmp eax, edx
je 0x406491
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
mov dword [esp], ebx
call sym._NOTEPAD_DoFind
mov eax, dword [ebx + 0xc]
jmp 0x405459
movdqu xmm0, xmmword [ebx]
movups xmmword [0x40d1e4], xmm0
movdqu xmm1, xmmword [ebx + 0x10]
movups xmmword [0x40d1f4], xmm1
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [0x40d204], eax
mov dword [0x40d208], edx
mov dword [esp], ebx
call sym._NOTEPAD_DoFind
mov eax, dword [ebx + 0xc]
jmp 0x405451
lea eax, [ebp - 0x214]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x230], edx
call dword [sym.imp.user32.dll_GetClientRect]
mov ebx, dword [sym.imp.user32.dll_CreateWindowExW]
sub esp, 8
cmp dword [0x40c09c], 1
mov dword [esp + 0x2c], 0
mov ecx, dword [0x40c020]
sbb eax, eax
mov dword [esp + 0x24], 0
and eax, 0x100080
mov dword [esp + 0x28], ecx
mov edx, dword [ebp - 0x230]
add eax, 0x50a00144
mov dword [esp + 0x20], edx
mov ecx, dword [ebp - 0x208]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp - 0x20c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.edit
mov dword [esp], 0x200
call ebx
sub esp, 0x30
mov dword [0x40c02c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], sym._EDIT_CallBackProc_24
mov dword [esp], eax
call dword [sym.imp.comctl32.dll_SetWindowSubclass]
sub esp, 0x10
mov dword [esp], 0x40c040
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 4
mov dword [0x40c030], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x40c02c]
mov dword [esp], eax
call esi
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc5
mov eax, dword [0x40c02c]
mov dword [esp], eax
call esi
sub esp, 0x10
mov dword [esp + 0x2c], 0
mov eax, dword [0x40c020]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
mov edx, dword [ebp - 0x230]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x50000000
mov dword [esp + 8], 0
mov dword [esp + 4], str.msctls_statusbar32
mov dword [esp], 0
call ebx
sub esp, 0x30
mov dword [0x40c034], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40c03c
mov dword [esp + 4], 0x206
mov eax, dword [0x40c020]
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
mov eax, 0xffffffff
mov edx, 0xffffffff
sub esp, 0x10
mov dword [0x40d1b4], eax
mov dword [0x40d1b8], edx
call sym._UpdateStatusBar
xor eax, eax
jmp 0x4059dd
call sym._DoCloseFile
test eax, eax
setne al
movzx eax, al
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [ebp - 0x230], edx
call sym._DoCloseFile
mov edx, dword [ebp - 0x230]
test eax, eax
je case.0x405b82.263
mov dword [esp], edx
call dword [sym.imp.user32.dll_DestroyWindow]
xor eax, eax
sub esp, 4
jmp 0x4059dd
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetFocus]
xor eax, eax
sub esp, 4
jmp 0x4059dd
mov eax, dword [0x40c038]
mov esi, ebx
movzx ebx, bx
shr esi, 0x10
test eax, eax
jne 0x4062a0
mov dword [esp + 0x18], 0x204
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowPos]
xor eax, eax
sub esp, 0x1c
jmp 0x4059dd
lea eax, [ebp - 0x228]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
lea eax, [ebp - 0x22c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0xf003f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftNotepad
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegCreateKeyExW]
sub esp, 0x24
test eax, eax
je 0x405bb0
mov dword [esp], 0
call dword [sym.imp.user32.dll_PostQuitMessage]
xor eax, eax
sub esp, 4
jmp 0x4059dd
lea ebx, [ebp - 0x214]
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.shell32.dll_DragQueryFileW]
sub esp, 0x10
mov dword [esp], esi
call dword [sym.imp.shell32.dll_DragFinish]
sub esp, 4
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sym._DoOpenFile
xor eax, eax
jmp 0x4059dd
movzx eax, si
cmp si, 0x192
ja 0x4064e4
and esi, 0xff00
je case.0x405b82.263
sub eax, 0x100
cmp eax, 0x92
ja case.0x405b82.263
jmp dword [eax*4 + 0x40a1f0]
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x214]
lea eax, [esi + eax*2]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrStrIW]
jmp 0x405598
lea eax, [ebp - 0x214]
lea esi, [ebp - 0x224]
mov dword [ebp - 0x214], 0x2c
mov dword [esp + 4], eax
mov eax, dword [0x40c024]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowPlacement]
movdqu xmm6, xmmword [ebp - 0x1f8]
mov eax, dword [0x40c09c]
sub esp, 8
mov ebx, dword [sym.imp.advapi32.dll_RegSetValueExW]
movups xmmword [0x40d218], xmm6
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.fWrap
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40d218]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iWindowPosX
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40d21c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iWindowPosY
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40d220]
sub eax, dword [0x40d218]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iWindowPosDX
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40d224]
sub eax, dword [0x40d21c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iWindowPosDY
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c057]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfCharSet
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c059]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfClipPrecision
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40c048]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfEscapement
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c054]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfItalic
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40c04c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfOrientation
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c058]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfOutPrecision
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c05b]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfPitchAndFamily
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c05a]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfQuality
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c056]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfStrikeOut
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
movzx eax, byte [0x40c055]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfUnderline
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40c050]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfWeight
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40cd90]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iMarginTop
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40cd94]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iMarginBottom
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40cd98]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iMarginLeft
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40cd9c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iMarginRight
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40c038]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.bStatusBar
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [0x40c024]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDpiForWindow]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0x2d0
mov edx, dword [0x40c040]
mov eax, edx
neg eax
cmovs eax, edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_MulDiv]
sub esp, 0xc
mov dword [ebp - 0x224], eax
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.iPointSize
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40c05c], 0
je 0x4065c5
mov eax, 0x40c05c
nop
add eax, 2
cmp word [eax], 0
jne 0x406190
sub eax, 0x40c05c
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x40c05c
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfFaceName
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40cda0], 0
je 0x4065d3
mov eax, 0x40cda0
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x4061e8
sub eax, 0x40cda0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x40cda0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.szHeader
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40cfa8], 0
je 0x4065cc
mov eax, 0x40cfa8
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x406240
sub eax, 0x40cfa8
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x40cfa8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.szTrailer
mov eax, dword [ebp - 0x22c]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x22c]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x405aec
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 5
mov eax, dword [0x40c034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
lea eax, [ebp - 0x214]
sub esp, 0x10
mov dword [esp + 4], eax
mov eax, dword [0x40c034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowRect]
sub esi, dword [ebp - 0x208]
add esi, dword [ebp - 0x210]
sub esp, 8
jmp 0x405a4d
mov ecx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x224]
mov edx, dword [ebp - 0x230]
sub eax, ecx
cmp eax, edx
jne 0x405776
lea eax, [esi + ecx*2]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrCmpNIW]
sub esp, 0xc
test eax, eax
jne 0x405776
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov dword [esp + 0xc], eax
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
sub esp, 0x10
jmp 0x405776
call sym._DIALOG_EditGoTo
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_SelectFont
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_HelpAboutNotepad
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_HelpContents
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_Replace
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_SearchNext
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_Search
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditWrap
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditTimeDate
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditSelectAll
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditDelete
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditPaste
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditCopy
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditCut
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_EditUndo
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FileExit
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FilePrinterSetup
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FilePageSetup
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FilePrint
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FileSaveAs
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FileSave
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FileOpen
xor eax, eax
jmp 0x4059dd
call sym._DIALOG_FileNew
xor eax, eax
jmp 0x4059dd
mov dword [ebp - 0x234], 0
jmp 0x4054ab
mov dword [ebp - 0x230], 0
jmp 0x4056b3
lea eax, [esi + ecx*2]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrCmpNW]
sub esp, 0xc
test eax, eax
jne 0x405776
jmp 0x406336
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb1
mov eax, dword [0x40c02c]
mov dword [esp], eax
call edi
xor eax, eax
sub esp, 0x10
jmp 0x4059dd
cmp eax, 0x205
jne case.0x405b82.263
mov esi, dword [0x40c038]
mov eax, dword [0x40c024]
xor ebx, ebx
test esi, esi
sete bl
mov dword [0x40c038], ebx
shl ebx, 3
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetMenu]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x205
mov dword [esp], eax
call dword [sym.imp.user32.dll_CheckMenuItem]
lea eax, [ebp - 0x224]
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [0x40c024]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [0x40c038]
sub esp, 8
neg eax
sbb eax, eax
and eax, 5
mov dword [esp + 4], eax
mov eax, dword [0x40c034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov edi, dword [0x40c038]
mov ebx, dword [ebp - 0x218]
mov esi, dword [ebp - 0x21c]
sub esp, 8
test edi, edi
jne 0x4065da
mov dword [esp + 0x18], 0x204
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0x40c02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowPos]
sub esp, 0x1c
call sym._UpdateStatusBar
xor eax, eax
jmp 0x4059dd
xor eax, eax
jmp 0x40619e
xor eax, eax
jmp 0x40624e
xor eax, eax
jmp 0x4061f6
xor edx, edx
mov dword [esp + 4], 5
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
mov eax, dword [0x40c034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
lea eax, [ebp - 0x214]
sub esp, 0x10
mov dword [esp + 4], eax
mov eax, dword [0x40c034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowRect]
push ecx
push ecx
sub ebx, dword [ebp - 0x208]
add ebx, dword [ebp - 0x210]
jmp 0x406580
mov eax, dword [ebx + 0xc]
jmp 0x405459