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

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x268
mov edx, dword [ecx + 4]
mov edi, dword [ecx]
movzx eax, word [0x40c224]
mov esi, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
cmp eax, edx
je 0x404ed0
cmp edx, 0x11
ja 0x404d60
test edx, edx
je case.0x404d57.0
cmp edx, 0x11
ja case.0x404d57.0
jmp dword [edx*4 + 0x4091e8]
cmp edx, 0x233
je 0x4056b0
jbe 0x404d90
xor eax, eax
cmp edx, 0x307
jne case.0x404d57.0
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
cmp edx, 0x111
je 0x404f08
cmp edx, 0x117
jne case.0x404d57.0
mov eax, dword [0x40b02c]
mov edi, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc6
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
mov eax, dword [0x40b02c]
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb0
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 [0x40b02c]
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
xor eax, eax
sub esp, 0xc
jmp 0x404d7c
mov eax, dword [ebx + 0xc]
test al, 0x40
je 0x404ee1
mov dword [0x40b028], 0
test al, 8
jne 0x4052e0
test al, 0x10
jne 0x405170
test al, 0x20
jne 0x404f58
xor eax, eax
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
movzx eax, si
cmp si, 0x192
ja 0x405600
and esi, 0xff00
je case.0x404f2a.263
sub eax, 0x100
cmp eax, 0x92
ja case.0x404f2a.263
jmp dword [eax*4 + 0x409230]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], edi
call dword [sym.imp.user32.dll_DefWindowProcW]
sub esp, 0x10
jmp 0x404d7c
mov eax, dword [ebx]
mov dword [0x40c1e4], eax
mov eax, dword [ebx + 4]
mov dword [0x40c1e8], eax
mov eax, dword [ebx + 8]
mov dword [0x40c1ec], eax
mov eax, dword [ebx + 0xc]
mov dword [0x40c1f0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x40c1f4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x40c1f8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x40c1fc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x40c200], eax
mov eax, dword [ebx + 0x20]
mov dword [0x40c204], eax
mov eax, dword [ebx + 0x24]
mov dword [0x40c208], eax
mov edx, dword [ebx + 0x10]
cmp word [edx], 0
je 0x405f9f
mov eax, edx
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x404fc0
sub eax, edx
sar eax, 1
mov dword [ebp - 0x244], eax
mov eax, dword [0x40b02c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov esi, dword [sym.imp.user32.dll_SendMessageW]
mov dword [esp + 4], 0xb1
mov dword [esp], eax
call esi
mov eax, dword fs:[0x18]
mov dword [ebp - 0x240], eax
sub esp, 0x10
mov eax, dword [0x40b02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
lea ecx, [eax + 1]
sub esp, 4
lea eax, [ecx + ecx]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x23c], ecx
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 edi, eax
test eax, eax
je case.0x404f2a.263
mov ecx, dword [ebp - 0x23c]
mov dword [esp + 4], eax
mov eax, dword [0x40b02c]
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [ebp - 0x220]
sub esp, 0xc
mov dword [esp + 0xc], eax
mov eax, dword [0x40b02c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb0
mov dword [esp], eax
call esi
mov eax, dword [ebx + 0xc]
sub esp, 0x10
and eax, 5
cmp eax, 1
je 0x405700
cmp eax, 5
jne case.0x404f2a.263
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
lea eax, [edi + eax*2]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrStrW]
sub eax, edi
sub esp, 8
sar eax, 1
mov dword [ebp - 0x220], eax
add eax, edi
jne 0x4050e7
mov dword [ebp - 0x220], 0xffffffff
mov dword [esp + 8], edi
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 - 0x220]
sub esp, 0xc
cmp eax, 0xffffffff
je 0x405fbd
mov edi, dword [ebp - 0x244]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xb1
lea edx, [edi + eax]
mov eax, dword [0x40b02c]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call esi
mov eax, dword [ebx + 0x14]
sub esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [0x40b02c]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov dword [esp], eax
call esi
sub esp, 0x10
jmp 0x40500a
mov eax, dword [ebx]
mov dword [0x40c1e4], eax
mov eax, dword [ebx + 4]
mov dword [0x40c1e8], eax
mov eax, dword [ebx + 8]
mov dword [0x40c1ec], eax
mov eax, dword [ebx + 0xc]
mov dword [0x40c1f0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x40c1f4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x40c1f8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x40c1fc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x40c200], eax
mov eax, dword [ebx + 0x20]
mov dword [0x40c204], eax
mov eax, dword [ebx + 0x24]
mov dword [0x40c208], eax
mov edx, dword [ebx + 0x10]
cmp word [edx], 0
je 0x405fae
mov eax, edx
nop
add eax, 2
cmp word [eax], 0
jne 0x4051d0
sub eax, edx
sar eax, 1
mov dword [ebp - 0x23c], eax
mov eax, dword [0x40b02c]
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 0x40602b
mov dword [esp + 4], eax
mov eax, dword [0x40b02c]
mov dword [esp + 8], edi
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 - 0x220]
mov dword [esp + 8], eax
mov eax, dword [0x40b02c]
mov dword [esp + 4], 0xb0
mov dword [esp], eax
call edi
mov eax, dword [ebx + 0xc]
sub esp, 0x10
mov ecx, eax
and ecx, 5
cmp ecx, 1
je 0x405e20
cmp ecx, 5
jne 0x404ef1
mov ecx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x224]
sub eax, ecx
cmp eax, dword [ebp - 0x23c]
je 0x405fe9
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 dbg.NOTEPAD_DoFind
mov eax, dword [ebx + 0xc]
jmp 0x404ef1
mov eax, dword [ebx]
mov dword [0x40c1e4], eax
mov eax, dword [ebx + 4]
mov dword [0x40c1e8], eax
mov eax, dword [ebx + 8]
mov dword [0x40c1ec], eax
mov eax, dword [ebx + 0xc]
mov dword [0x40c1f0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x40c1f4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x40c1f8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x40c1fc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x40c200], eax
mov eax, dword [ebx + 0x20]
mov dword [0x40c204], eax
mov eax, dword [ebx + 0x24]
mov dword [esp], ebx
mov dword [0x40c208], eax
call dbg.NOTEPAD_DoFind
mov eax, dword [ebx + 0xc]
jmp 0x404ee9
mov eax, dword [0x40b02c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetFocus]
xor eax, eax
sub esp, 4
jmp 0x404d7c
call dbg.DoCloseFile
test eax, eax
setne al
movzx eax, al
jmp 0x404d7c
lea eax, [ebp - 0x220]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov edx, dword [0x40b020]
mov ebx, dword [sym.imp.user32.dll_CreateWindowExW]
sub esp, 8
cmp dword [0x40b09c], 1
mov dword [esp + 0x28], edx
mov edx, dword [ebp - 0x214]
sbb eax, eax
and eax, 0x100080
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], edx
mov edx, dword [ebp - 0x218]
add eax, 0x50a00144
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], global_editW
mov dword [esp], 0x200
call ebx
sub esp, 0x30
mov dword [0x40b02c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], dbg.EDIT_CallBackProc@24
mov dword [esp], eax
call dword [sym.imp.comctl32.dll_SetWindowSubclass]
sub esp, 0x10
mov dword [esp], 0x40b040
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 4
mov dword [0x40b030], eax
mov dword [esp + 8], eax
mov eax, dword [0x40b02c]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x30
mov dword [esp], eax
call esi
mov eax, dword [0x40b02c]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc5
mov dword [esp], eax
call esi
mov eax, dword [0x40b020]
sub esp, 0x10
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0
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
mov dword [0x40b034], eax
mov eax, dword [0x40b020]
sub esp, 0x30
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40b03c
mov dword [esp + 4], 0x206
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
mov dword [0x40c1b4], 0xffffffff
mov dword [0x40c1b8], 0xffffffff
sub esp, 0x10
call dbg.UpdateStatusBar
xor eax, eax
jmp 0x404d7c
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 0x405720
mov dword [esp], 0
call dword [sym.imp.user32.dll_PostQuitMessage]
xor eax, eax
sub esp, 4
jmp 0x404d7c
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.updateWindowSize
xor eax, eax
jmp 0x404d7c
call dbg.DoCloseFile
test eax, eax
je case.0x404f2a.263
mov dword [esp], edi
call dword [sym.imp.user32.dll_DestroyWindow]
xor eax, eax
sub esp, 4
jmp 0x404d7c
cmp eax, 0x205
jne case.0x404f2a.263
mov eax, dword [0x40b038]
xor ebx, ebx
test eax, eax
mov eax, dword [0x40b024]
sete bl
mov dword [0x40b038], 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 - 0x220]
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [0x40b024]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [0x40b038]
mov edx, 5
sub esp, 8
test eax, eax
cmovne eax, edx
mov dword [esp + 4], eax
mov eax, dword [0x40b034]
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [ebp - 0x214]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x218]
mov dword [esp], eax
call dbg.updateWindowSize
call dbg.UpdateStatusBar
xor eax, eax
jmp 0x404d7c
lea ebx, [ebp - 0x220]
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 dbg.DoOpenFile
xor eax, eax
jmp 0x404d7c
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
lea eax, [edi + eax*2]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrStrIW]
jmp 0x4050cc
lea eax, [ebp - 0x220]
lea esi, [ebp - 0x224]
mov dword [ebp - 0x220], 0x2c
mov dword [esp + 4], eax
mov eax, dword [0x40b024]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowPlacement]
mov eax, dword [ebp - 0x204]
mov ebx, dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 8
mov dword [0x40c214], eax
mov eax, dword [ebp - 0x200]
mov dword [esp + 0x14], 4
mov dword [0x40c218], eax
mov eax, dword [ebp - 0x1fc]
mov dword [esp + 0x10], esi
mov dword [0x40c21c], eax
mov eax, dword [ebp - 0x1f8]
mov dword [esp + 0xc], 4
mov dword [0x40c220], eax
mov eax, dword [0x40b09c]
mov dword [esp + 8], 0
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
mov dword [esp + 4], str.fWrap
mov dword [esp], eax
call ebx
mov eax, dword [0x40c214]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40c218]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40c21c]
sub eax, dword [0x40c214]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
sub esp, 0x18
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 dword [esp], eax
call ebx
mov eax, dword [0x40c220]
sub eax, dword [0x40c218]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
sub esp, 0x18
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b057]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b059]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40b048]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b054]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40b04c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b058]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b05b]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b05a]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b056]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
movzx eax, byte [0x40b055]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40b050]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40bd90]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40bd94]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40bd98]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40bd9c]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
mov eax, dword [0x40b038]
sub esp, 0x18
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
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 dword [esp], eax
call ebx
sub esp, 0x18
call dbg.get_dpi
mov edx, dword [0x40b040]
mov dword [esp + 4], 0x2d0
mov dword [esp + 8], eax
mov eax, edx
neg eax
cmovs eax, edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_MulDiv]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x22c]
sub esp, 0xc
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 dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40b05c], 0
je 0x406024
mov eax, 0x40b05c
nop
add eax, 2
cmp word [eax], 0
jne 0x405d10
sub eax, 0x40b05c
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x22c]
mov dword [esp + 0x10], 0x40b05c
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.lfFaceName
mov dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40bda0], 0
je 0x40601d
mov eax, 0x40bda0
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x405d68
sub eax, 0x40bda0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x22c]
mov dword [esp + 0x10], 0x40bda0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.szHeader
mov dword [esp], eax
call ebx
sub esp, 0x18
cmp word [0x40bfa8], 0
je 0x406016
mov eax, 0x40bfa8
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x405dc0
sub eax, 0x40bfa8
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x22c]
mov dword [esp + 0x10], 0x40bfa8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.szTrailer
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 0x4055a4
mov ecx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x224]
sub eax, ecx
cmp eax, dword [ebp - 0x23c]
jne 0x4052a4
mov eax, dword [ebp - 0x23c]
mov dword [esp + 8], eax
lea eax, [esi + ecx*2]
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 0x4052a4
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov dword [esp + 0xc], eax
mov eax, dword [0x40b02c]
mov dword [esp], eax
call edi
sub esp, 0x10
jmp 0x4052a4
call dbg.DIALOG_EditGoTo
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_SelectFont
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_HelpAboutNotepad
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_HelpContents
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_Replace
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_SearchNext
xor eax, eax
jmp 0x404d7c
call sym._DIALOG_Search
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditWrap
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditTimeDate
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditSelectAll
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditDelete
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditPaste
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditCopy
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditCut
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_EditUndo
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FileExit
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FilePrinterSetup
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FilePageSetup
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FilePrint
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FileSaveAs
xor eax, eax
jmp 0x404d7c
call sym._DIALOG_FileSave
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FileOpen
xor eax, eax
jmp 0x404d7c
call dbg.DIALOG_FileNew
xor eax, eax
jmp 0x404d7c
mov dword [ebp - 0x244], 0
jmp 0x404fd3
mov dword [ebp - 0x23c], 0
jmp 0x4051e3
mov eax, dword [0x40b02c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb1
mov dword [esp], eax
call esi
xor eax, eax
sub esp, 0x10
jmp 0x404ef7
mov eax, dword [ebp - 0x23c]
mov dword [esp + 8], eax
lea eax, [esi + ecx*2]
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 0x4052a4
jmp 0x405e62
xor eax, eax
jmp 0x405dce
xor eax, eax
jmp 0x405d76
xor eax, eax
jmp 0x405d1e
mov eax, dword [ebx + 0xc]
jmp 0x404ef1