Function at 0x404280
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
push ebx
sub esp, 0x250
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
movzx edx, word [0x409200]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
cmp edx, eax
je 0x404428
cmp eax, 0x11
ja 0x4042c8
test eax, eax
je case.0x4042bd.0
cmp eax, 0x11
ja case.0x4042bd.0
jmp dword [eax*4 + 0x40a070]
cmp eax, 0x233
je 0x404c00
jbe 0x4042f0
xor edx, edx
cmp eax, 0x307
jne case.0x4042bd.0
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp eax, 0x111
je 0x404460
cmp eax, 0x117
jne case.0x4042bd.0
mov eax, dword [0x40800c]
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 [0x40800c]
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 [0x40800c]
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 edx, edx
sub esp, 0xc
jmp 0x4042e2
mov eax, dword [ebx + 0xc]
test al, 0x40
je 0x404439
mov dword [0x408008], 0
test al, 8
jne 0x404830
test al, 0x10
jne 0x4046c0
test al, 0x20
jne 0x4044b0
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
movzx eax, si
cmp si, 0x192
ja 0x404b50
and esi, 0xff00
je case.0x404482.263
sub eax, 0x100
cmp eax, 0x92
ja case.0x404482.263
jmp dword [eax*4 + 0x40a0b8]
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x10], esi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp dword [sym.imp.user32.dll_DefWindowProcW]
mov eax, dword [ebx]
mov dword [0x4091c4], eax
mov eax, dword [ebx + 4]
mov dword [0x4091c8], eax
mov eax, dword [ebx + 8]
mov dword [0x4091cc], eax
mov eax, dword [ebx + 0xc]
mov dword [0x4091d0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x4091d4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x4091d8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x4091dc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x4091e0], eax
mov eax, dword [ebx + 0x20]
mov dword [0x4091e4], eax
mov eax, dword [ebx + 0x24]
mov dword [0x4091e8], eax
mov edx, dword [ebx + 0x10]
cmp word [edx], 0
je 0x4054ff
mov eax, edx
nop
add eax, 2
cmp word [eax], 0
jne 0x404510
sub eax, edx
sar eax, 1
mov dword [ebp - 0x22c], eax
mov eax, dword [0x40800c]
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 - 0x228], eax
sub esp, 0x10
mov eax, dword [0x40800c]
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 - 0x228]
mov dword [ebp - 0x224], 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.0x404482.263
mov ecx, dword [ebp - 0x224]
mov dword [esp + 4], eax
mov eax, dword [0x40800c]
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [ebp - 0x214]
sub esp, 0xc
mov dword [esp + 0xc], eax
mov eax, dword [0x40800c]
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 0x404c50
cmp eax, 5
jne case.0x404482.263
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x214]
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 - 0x214], eax
add eax, edi
jne 0x404637
mov dword [ebp - 0x214], 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 - 0x214]
sub esp, 0xc
cmp eax, 0xffffffff
je 0x40551d
mov ecx, dword [ebp - 0x22c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xb1
lea edx, [ecx + eax]
mov eax, dword [0x40800c]
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 [0x40800c]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov dword [esp], eax
call esi
sub esp, 0x10
jmp 0x40455a
mov eax, dword [ebx]
mov dword [0x4091c4], eax
mov eax, dword [ebx + 4]
mov dword [0x4091c8], eax
mov eax, dword [ebx + 8]
mov dword [0x4091cc], eax
mov eax, dword [ebx + 0xc]
mov dword [0x4091d0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x4091d4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x4091d8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x4091dc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x4091e0], eax
mov eax, dword [ebx + 0x20]
mov dword [0x4091e4], eax
mov eax, dword [ebx + 0x24]
mov dword [0x4091e8], eax
mov edx, dword [ebx + 0x10]
cmp word [edx], 0
je 0x40550e
mov eax, edx
nop
add eax, 2
cmp word [eax], 0
jne 0x404720
sub eax, edx
sar eax, 1
mov dword [ebp - 0x224], eax
mov eax, dword [0x40800c]
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 0x40558b
mov dword [esp + 4], eax
mov eax, dword [0x40800c]
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [ebp - 0x218]
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 eax, dword [0x40800c]
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 0x405380
cmp ecx, 5
jne 0x404449
mov ecx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x218]
sub eax, ecx
cmp eax, dword [ebp - 0x224]
je 0x405549
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 0x404449
mov eax, dword [ebx]
mov dword [0x4091c4], eax
mov eax, dword [ebx + 4]
mov dword [0x4091c8], eax
mov eax, dword [ebx + 8]
mov dword [0x4091cc], eax
mov eax, dword [ebx + 0xc]
mov dword [0x4091d0], eax
mov eax, dword [ebx + 0x10]
mov dword [0x4091d4], eax
mov eax, dword [ebx + 0x14]
mov dword [0x4091d8], eax
mov eax, dword [ebx + 0x18]
mov dword [0x4091dc], eax
mov eax, dword [ebx + 0x1c]
mov dword [0x4091e0], eax
mov eax, dword [ebx + 0x20]
mov dword [0x4091e4], eax
mov eax, dword [ebx + 0x24]
mov dword [esp], ebx
mov dword [0x4091e8], eax
call sym._NOTEPAD_DoFind
mov eax, dword [ebx + 0xc]
jmp 0x404441
mov eax, dword [0x40800c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetFocus]
xor edx, edx
sub esp, 4
jmp 0x4042e2
call sym._DoCloseFile
xor edx, edx
test eax, eax
setne dl
jmp 0x4042e2
lea eax, [ebp - 0x214]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov edx, dword [section..data]
mov ebx, dword [sym.imp.user32.dll_CreateWindowExW]
sub esp, 8
cmp dword [0x40807c], 1
mov dword [esp + 0x28], edx
mov edx, dword [ebp - 0x208]
sbb eax, eax
and eax, 0x100080
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], edx
mov edx, dword [ebp - 0x20c]
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], str.edit
mov dword [esp], 0x200
call ebx
sub esp, 0x30
mov dword [0x40800c], 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], 0x408020
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 4
mov dword [0x408010], eax
mov dword [esp + 8], eax
mov eax, dword [0x40800c]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x30
mov dword [esp], eax
call esi
mov eax, dword [0x40800c]
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 [section..data]
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 [0x408014], eax
mov eax, dword [section..data]
sub esp, 0x30
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40801c
mov dword [esp + 4], 0x206
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
mov dword [0x409194], 0xffffffff
mov dword [0x409198], 0xffffffff
sub esp, 0x10
call sym._UpdateStatusBar
xor edx, edx
jmp 0x4042e2
lea eax, [ebp - 0x21c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
lea eax, [ebp - 0x220]
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 0x404c70
mov dword [esp], 0
call dword [sym.imp.user32.dll_PostQuitMessage]
xor edx, edx
sub esp, 4
jmp 0x4042e2
mov eax, ebx
movzx ebx, bx
shr eax, 0x10
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._updateWindowSize
xor edx, edx
jmp 0x4042e2
call sym._DoCloseFile
test eax, eax
je case.0x404482.263
mov dword [esp], edi
call dword [sym.imp.user32.dll_DestroyWindow]
xor edx, edx
sub esp, 4
jmp 0x4042e2
cmp eax, 0x205
jne case.0x404482.263
mov eax, dword [0x408018]
xor ebx, ebx
test eax, eax
mov eax, dword [0x408004]
sete bl
mov dword [0x408018], 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 - 0x214]
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [0x408004]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [0x408018]
mov edx, 5
sub esp, 8
test eax, eax
cmovne eax, edx
mov dword [esp + 4], eax
mov eax, dword [0x408014]
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [ebp - 0x208]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20c]
mov dword [esp], eax
call sym._updateWindowSize
call sym._UpdateStatusBar
xor edx, edx
jmp 0x4042e2
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 edx, edx
jmp 0x4042e2
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x214]
lea eax, [edi + eax*2]
mov dword [esp], eax
call dword [sym.imp.shlwapi.dll_StrStrIW]
jmp 0x40461c
lea eax, [ebp - 0x214]
lea esi, [ebp - 0x218]
mov dword [ebp - 0x214], 0x2c
mov dword [esp + 4], eax
mov eax, dword [0x408004]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowPlacement]
mov eax, dword [ebp - 0x1f8]
mov ebx, dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 8
mov dword [0x409444], eax
mov eax, dword [ebp - 0x1f4]
mov dword [esp + 0x14], 4
mov dword [0x409448], eax
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 0x10], esi
mov dword [0x40944c], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esp + 0xc], 4
mov dword [0x409450], eax
mov eax, dword [0x40807c]
mov dword [esp + 8], 0
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 4], str.fWrap
mov dword [esp], eax
call ebx
mov eax, dword [0x409444]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x409448]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x40944c]
sub eax, dword [0x409444]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x409450]
sub eax, dword [0x409448]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408037]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408039]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408028]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408034]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x40802c]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408038]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x40803b]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x40803a]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408036]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408035]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408030]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408d70]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408d74]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408d78]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408d7c]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x408018]
sub esp, 0x18
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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
mov eax, dword [0x408004]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDpiForWindow]
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [0x408020]
mov dword [esp + 4], 0x2d0
cdq
xor eax, edx
sub eax, edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_MulDiv]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x220]
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 [0x40803c], 0
je 0x405584
mov eax, 0x40803c
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x405270
sub eax, 0x40803c
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x10], 0x40803c
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 [0x408d80], 0
je 0x40557d
mov eax, 0x408d80
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x4052c8
sub eax, 0x408d80
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x10], 0x408d80
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 [0x408f88], 0
je 0x405576
mov eax, 0x408f88
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x405320
sub eax, 0x408f88
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x220]
mov dword [esp + 0x10], 0x408f88
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 - 0x220]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x404af4
mov ecx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x218]
sub eax, ecx
cmp eax, dword [ebp - 0x224]
jne 0x4047f4
mov eax, dword [ebp - 0x224]
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 0x4047f4
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc2
mov dword [esp + 0xc], eax
mov eax, dword [0x40800c]
mov dword [esp], eax
call edi
sub esp, 0x10
jmp 0x4047f4
call sym._DIALOG_EditGoTo
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_SelectFont
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_HelpAboutNotepad
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_HelpContents
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_Replace
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_SearchNext
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_Search
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditWrap
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditTimeDate
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditSelectAll
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditDelete
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditPaste
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditCopy
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditCut
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_EditUndo
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FileExit
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FilePrinterSetup
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FilePageSetup
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FilePrint
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FileSaveAs
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FileSave
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FileOpen
xor edx, edx
jmp 0x4042e2
call sym._DIALOG_FileNew
xor edx, edx
jmp 0x4042e2
mov dword [ebp - 0x22c], 0
jmp 0x404523
mov dword [ebp - 0x224], 0
jmp 0x404733
mov eax, dword [0x40800c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb1
mov dword [esp], eax
call esi
xor edx, edx
sub esp, 0x10
jmp 0x40444f
mov eax, dword [ebp - 0x224]
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 0x4047f4
jmp 0x4053c2
xor eax, eax
jmp 0x40532e
xor eax, eax
jmp 0x4052d6
xor eax, eax
jmp 0x40527e
mov eax, dword [ebx + 0xc]
jmp 0x404449