Function at 0x4039d0
Capabilities:
Accept command line arguments
Get graphical window text
Hide graphical window
Query or enumerate registry value
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x678
mov esi, dword [ebp + 8]
call dword [sym.imp.comctl32.dll_InitCommonControls]
push str.commdlg_FindReplace
call dword [sym.imp.user32.dll_RegisterWindowMessageW]
mov word [0x409400], ax
push 0x11f0
push 0
push 0x408210
call sym._memset
add esp, 0xc
mov dword [0x40820c], esi
mov ebx, dword [sym.imp.user32.dll_GetSystemMetrics]
push 0
call ebx
mov esi, eax
push 1
call ebx
xor ecx, ecx
cmp esi, eax
setg cl
push ecx
call ebx
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x50]
fmul qword [str.ffffff]
fnstcw word [ebp - 0x12]
movzx eax, word [ebp - 0x12]
or eax, 0xc00
mov word [ebp - 0x46], ax
fldcw word [ebp - 0x46]
fistp dword [ebp - 0x54]
fldcw word [ebp - 0x12]
mov ecx, dword [ebp - 0x54]
lea eax, [ecx + ecx*2]
mov edi, eax
sar edi, 0x1f
shr edi, 0x1e
add edi, eax
sar edi, 2
mov dword [0x409404], 0
mov dword [ebp - 0x10], ecx
mov dword [0x40940c], ecx
mov dword [0x409408], 0
mov dword [0x409410], edi
mov dword [0x408288], 1
mov dword [0x408f7c], 0x9c4
mov dword [0x408f80], 0x9c4
mov dword [0x408f84], 0x7d0
mov dword [0x408f88], 0x7d0
mov dword [0x408224], 1
mov dword [0x40822c], 0xfffffff4
mov dword [0x408230], 0
mov dword [0x408234], 0
mov dword [0x408238], 0
mov dword [0x40823c], 0x190
mov dword [0x408240], 0x1000000
mov dword [0x408244], 0x1000000
mov dword [0x408248], 0x790053
mov dword [0x40824c], 0x740073
mov dword [0x408250], 0x6d0065
mov word [0x408254], 0
mov esi, dword [sym.imp.user32.dll_LoadStringW]
push 0x104
push 0x408f8c
push 0x160
push dword [0x40820c]
call esi
push 0x104
push 0x409194
push 0x161
push dword [0x40820c]
call esi
lea eax, [ebp - 0x684]
push eax
push str.SoftwareMicrosoftNotepad
push 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
test eax, eax
jne 0x404209
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], 4
lea ebx, [ebp - 0x44]
lea esi, [ebp - 0x484]
lea eax, [ebp - 0x284]
push ebx
push esi
push eax
push 0
push str.fWrap
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403bc8
cmp dword [ebp - 0x284], 4
jne 0x403bc8
mov eax, dword [ebp - 0x484]
mov dword [0x408288], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iWindowPosX
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403c03
cmp dword [ebp - 0x284], 4
jne 0x403c03
mov eax, dword [ebp - 0x484]
mov dword [0x409404], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iWindowPosY
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403c3e
cmp dword [ebp - 0x284], 4
jne 0x403c3e
mov eax, dword [ebp - 0x484]
mov dword [0x409408], eax
mov dword [ebp - 0x44], 4
mov esi, dword [sym.imp.advapi32.dll_RegQueryValueExW]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp - 0x284]
push eax
push 0
push str.iWindowPosDX
push dword [ebp - 0x684]
call esi
mov ecx, dword [ebp - 0x284]
xor ecx, 4
or ecx, eax
mov edi, dword [ebp - 0x10]
jne 0x403c82
mov edi, dword [ebp - 0x484]
mov dword [ebp - 0x44], 4
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp - 0x284]
push eax
push 0
push str.iWindowPosDY
push dword [ebp - 0x684]
call esi
mov ecx, dword [ebp - 0x284]
xor ecx, 4
or ecx, eax
jne 0x403cc0
mov eax, dword [ebp - 0x484]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], 4
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x484]
push eax
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfCharSet
push dword [ebp - 0x684]
call esi
test eax, eax
jne 0x403d01
cmp dword [ebp - 0x284], 4
jne 0x403d01
movzx eax, byte [ebp - 0x484]
mov byte [0x408243], al
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x44], 4
lea eax, [ebp - 0x44]
push eax
lea esi, [ebp - 0x484]
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfClipPrecision
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403d49
cmp dword [ebp - 0x284], 4
jne 0x403d49
movzx eax, byte [ebp - 0x484]
mov byte [0x408245], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfEscapement
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
mov edi, dword [ebp - 0x4c]
jne 0x403d87
cmp dword [ebp - 0x284], 4
jne 0x403d87
mov eax, dword [ebp - 0x484]
mov dword [0x408234], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfItalic
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403dc3
cmp dword [ebp - 0x284], 4
jne 0x403dc3
movzx eax, byte [ebp - 0x484]
mov byte [0x408240], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfOrientation
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403dfe
cmp dword [ebp - 0x284], 4
jne 0x403dfe
mov eax, dword [ebp - 0x484]
mov dword [0x408238], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfOutPrecision
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403e3a
cmp dword [ebp - 0x284], 4
jne 0x403e3a
movzx eax, byte [ebp - 0x484]
mov byte [0x408244], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfPitchAndFamily
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403e76
cmp dword [ebp - 0x284], 4
jne 0x403e76
movzx eax, byte [ebp - 0x484]
mov byte [0x408247], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfQuality
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403eb2
cmp dword [ebp - 0x284], 4
jne 0x403eb2
movzx eax, byte [ebp - 0x484]
mov byte [0x408246], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfStrikeOut
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403eee
cmp dword [ebp - 0x284], 4
jne 0x403eee
movzx eax, byte [ebp - 0x484]
mov byte [0x408242], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfUnderline
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403f2a
cmp dword [ebp - 0x284], 4
jne 0x403f2a
movzx eax, byte [ebp - 0x484]
mov byte [0x408241], al
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.lfWeight
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403f65
cmp dword [ebp - 0x284], 4
jne 0x403f65
mov eax, dword [ebp - 0x484]
mov dword [0x40823c], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iMarginTop
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403fa0
cmp dword [ebp - 0x284], 4
jne 0x403fa0
mov eax, dword [ebp - 0x484]
mov dword [0x408f7c], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iMarginBottom
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x403fdb
cmp dword [ebp - 0x284], 4
jne 0x403fdb
mov eax, dword [ebp - 0x484]
mov dword [0x408f80], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iMarginLeft
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x404016
cmp dword [ebp - 0x284], 4
jne 0x404016
mov eax, dword [ebp - 0x484]
mov dword [0x408f84], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.iMarginRight
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x404051
cmp dword [ebp - 0x284], 4
jne 0x404051
mov eax, dword [ebp - 0x484]
mov dword [0x408f88], eax
mov dword [ebp - 0x44], 4
push ebx
push esi
lea eax, [ebp - 0x284]
push eax
push 0
push str.bStatusBar
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x40408c
cmp dword [ebp - 0x284], 4
jne 0x40408c
mov eax, dword [ebp - 0x484]
mov dword [0x408224], eax
mov eax, dword [ebp - 0x10]
add eax, dword [0x409404]
mov dword [0x40940c], eax
add edi, dword [0x409408]
mov dword [0x409410], edi
mov dword [ebp - 0x44], 4
lea eax, [ebp - 0x7c]
push ebx
push eax
push esi
push 0
push str.iPointSize
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x404106
cmp dword [ebp - 0x484], 4
jne 0x404106
cmp dword [ebp - 0x7c], 0
je 0x404106
call dword [sym.imp.user32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.user32.dll_GetDpiForWindow]
mov ecx, dword [ebp - 0x7c]
mov edx, ecx
sar edx, 0x1f
xor ecx, edx
sub ecx, edx
push 0x2d0
push eax
push ecx
call dword [sym.imp.kernel32.dll_MulDiv]
neg eax
mov dword [0x40822c], eax
mov dword [ebp - 0x44], 0x40
push ebx
lea eax, [ebp - 0x284]
push eax
push esi
push 0
push str.lfFaceName
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x404157
cmp dword [ebp - 0x484], 1
jne 0x404157
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp + eax - 0x284]
mov word [eax + 0x408248], cx
add eax, 2
test cx, cx
jne 0x404140
mov dword [ebp - 0x44], 0x208
push ebx
lea eax, [ebp - 0x284]
push eax
push esi
push 0
push str.szHeader
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x4041a7
cmp dword [ebp - 0x484], 1
jne 0x4041a7
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp + eax - 0x284]
mov word [eax + 0x408f8c], cx
add eax, 2
test cx, cx
jne 0x404190
mov dword [ebp - 0x44], 0x208
push ebx
lea eax, [ebp - 0x284]
push eax
push esi
push 0
push str.szTrailer
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
test eax, eax
jne 0x4041f7
cmp dword [ebp - 0x484], 1
jne 0x4041f7
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp + eax - 0x284]
mov word [eax + 0x409194], cx
add eax, 2
test cx, cx
jne 0x4041e0
push dword [ebp - 0x684]
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov ebx, dword [sym.imp.user32.dll_GetSystemMetrics]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x44], 0x30
mov dword [ebp - 0x3c], sym._NOTEPAD_WndProc_16
mov eax, dword [0x40820c]
mov dword [ebp - 0x30], eax
push 0x300
push eax
call dword [sym.imp.user32.dll_LoadIconW]
mov dword [ebp - 0x2c], eax
push 0x32
call ebx
mov esi, eax
push 0x31
call ebx
push 0x8000
push esi
push eax
push 1
push 0x300
push dword [0x40820c]
call dword [sym.imp.user32.dll_LoadImageW]
mov dword [ebp - 0x18], eax
push 0x7f00
push 0
call dword [sym.imp.user32.dll_LoadCursorW]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x20], 0x201
mov dword [ebp - 0x1c], 0x406410
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.user32.dll_RegisterClassExW]
test ax, ax
je 0x404318
push 1
push 0x409404
call dword [sym.imp.user32.dll_MonitorFromRect]
mov dword [ebp - 0x7c], 0x28
lea ecx, [ebp - 0x7c]
push ecx
push eax
call dword [sym.imp.user32.dll_GetMonitorInfoW]
mov ecx, dword [0x409404]
mov edx, dword [0x409408]
mov eax, dword [0x40940c]
cmp ecx, dword [ebp - 0x60]
jge 0x40431f
cmp edx, dword [ebp - 0x5c]
jge 0x40431f
mov esi, dword [0x409410]
cmp eax, dword [ebp - 0x68]
jl 0x404325
mov edi, ecx
mov ebx, edx
cmp esi, dword [ebp - 0x64]
jge 0x40432f
jmp 0x404325
xor eax, eax
jmp 0x404854
mov esi, dword [0x409410]
mov edi, 0x80000000
mov ebx, 0x80000000
sub esi, edx
sub eax, ecx
push 0
push dword [0x40820c]
push 0
push 0
push esi
push eax
push ebx
push edi
push 0xcf0000
push str.Notepad
push 0x406410
push 0
call dword [sym.imp.user32.dll_CreateWindowExW]
mov dword [0x408210], eax
test eax, eax
je 0x404861
push 0xff
push 0x408ab0
push 0x176
push dword [0x40820c]
call dword [sym.imp.user32.dll_LoadStringW]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + 0x408ab2], 0
lea ecx, [ecx + 2]
jne 0x404390
mov eax, ecx
sar eax, 1
mov dword [ebp - 0x10], eax
lea eax, [ecx + 0x408ab2]
mov dword [ecx + 0x408aba], 0x74
mov dword [ecx + 0x408ab6], 0x780074
mov dword [ecx + 0x408ab2], 0x2e002a
mov ebx, 0xfffffffe
nop
nop
nop
cmp word [eax + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x4043d0
mov edi, ebx
sar edi, 1
lea esi, [ebx + eax]
add esi, 2
push 0xff
push esi
push 0x175
push dword [0x40820c]
call dword [sym.imp.user32.dll_LoadStringW]
mov edx, dword [ebp - 0x10]
lea eax, [ebx + edx*2]
add eax, 0x408ab4
mov ecx, 0xfffffffe
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x404410
lea eax, [ecx + esi]
add eax, 2
mov dword [ecx + esi + 6], 0x2a
mov dword [ecx + esi + 2], 0x2e002a
lea ecx, [ecx + edx*2]
lea ecx, [ecx + edi*2]
add ecx, 0x408ab8
xor edx, edx
nop
cmp word [ecx + edx], 0
lea edx, [edx + 2]
jne 0x404440
mov word [edx + eax + 2], 0
mov dword [0x4093f8], 0
mov dword [0x4093fc], 0
xor ebx, ebx
cmp dword [0x408288], 0
setne bl
shl ebx, 3
mov esi, dword [sym.imp.user32.dll_GetMenu]
push dword [0x408210]
call esi
mov edi, dword [sym.imp.user32.dll_CheckMenuItem]
push ebx
push 0x119
push eax
call edi
xor ebx, ebx
cmp dword [0x408224], 0
setne bl
shl ebx, 3
push dword [0x408210]
call esi
push ebx
push 0x205
push eax
call edi
xor eax, eax
cmp dword [0x408224], 0
setne al
lea eax, [eax + eax*4]
mov esi, dword [sym.imp.user32.dll_ShowWindow]
push eax
push dword [0x408220]
call esi
call sym._DIALOG_FileNew
push dword [ebp + 0x14]
push dword [0x408210]
call esi
push dword [0x408210]
call dword [sym.imp.user32.dll_UpdateWindow]
push 1
push dword [0x408210]
call dword [sym.imp.shell32.dll_DragAcceptFiles]
call dword [sym.imp.kernel32.dll_GetCommandLineW]
add eax, 0xfffffffa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax + 6]
add eax, 2
cmp esi, 0x20
je 0x404510
xor ecx, ecx
cmp esi, 0x22
sete cl
lea edx, [ecx*2 + 0x20]
xor ecx, ecx
cmp edx, esi
sete cl
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax + ecx*2 + 4]
add eax, 2
test esi, esi
je 0x404550
cmp edx, esi
jne 0x404540
xor ebx, ebx
cmp edx, esi
sete bl
add ebx, ebx
lea edx, [ebx + ecx*2]
nop
nop
nop
nop
movzx ecx, word [eax + edx + 2]
add eax, 2
cmp cx, 0x20
je 0x404560
add eax, edx
mov bl, 1
mov edx, 0xa001
mov esi, eax
jmp 0x404580
xor ebx, ebx
mov esi, edi
nop
mov edi, eax
movzx eax, cx
add eax, 0xffffffe0
cmp eax, 0xf
ja 0x4045d0
bt edx, eax
jae 0x4045d0
lea eax, [edi + 2]
cmp cx, 0x20
movzx ecx, word [edi + 2]
je 0x404580
test cx, cx
je 0x4045a9
add edi, 4
mov eax, edi
movzx edi, cx
add eax, 0xfffffffe
nop
movzx ecx, word [eax + 2]
add eax, 2
cmp cx, 0x20
je 0x4045b0
or edi, 0x20
cmp edi, 0x70
jne 0x404580
mov edi, eax
test bl, 1
jne 0x40457b
mov edi, esi
jmp 0x40457b
movzx eax, word [esi]
test ax, ax
je 0x4047d5
cmp ax, 0x22
jne 0x404606
add esi, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
test ecx, ecx
je 0x404601
cmp ecx, 0x22
je 0x404601
add eax, 2
jmp 0x4045f0
mov word [eax], 0
push esi
call sym._FileExists
add esp, 4
test eax, eax
je 0x404641
push 0xffffffffffffffff
push esi
call sym._DoOpenFile
add esp, 8
push 0
push 0
push dword [0x408210]
call dword [sym.imp.user32.dll_InvalidateRect]
test bl, 1
jne 0x4047d5
call sym._DIALOG_FilePrint
jmp 0x4047d5
push esi
call dword [sym.imp.shlwapi.dll_PathFindFileNameW]
push 0x2e
push eax
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x404736
lea edi, [ebp - 0x484]
push 0xff
push edi
push 0x179
push dword [0x40820c]
mov ebx, dword [sym.imp.user32.dll_LoadStringW]
call ebx
push esi
push edi
lea eax, [ebp - 0x684]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0xff
push edi
push 0x171
push dword [0x40820c]
call ebx
push 0x33
push edi
lea eax, [ebp - 0x684]
push eax
push dword [0x408210]
call dword [sym.imp.user32.dll_MessageBoxW]
cmp eax, 2
je 0x4047c9
cmp eax, 6
jne 0x4047d5
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx ecx, word [esi + eax]
mov word [eax + 0x40869c], cx
add eax, 2
test cx, cx
jne 0x4046d0
mov word [0x4088a4], 0
push 0x104
push 0x4088a4
push esi
call dword [sym.imp.comdlg32.dll_GetFileTitleW]
mov dword [0x408aac], 0
push 0
push 0x80
push 4
push 0
push 2
push 0x40000000
push esi
call dword [sym.imp.kernel32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x40472c
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
call sym._UpdateWindowCaption
jmp 0x4047d5
mov ecx, 0xff
lea eax, [ebp - 0x282]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esi]
test dx, dx
je 0x404776
mov word [eax - 2], dx
movzx edx, word [esi + 2]
test dx, dx
je 0x404779
add ecx, 0xfffffffe
mov word [eax], dx
add eax, 4
add esi, 4
cmp ecx, 1
ja 0x404750
add eax, 0xfffffffe
mov word [eax], 0
lea eax, [ebp - 0x284]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x404790
mov dword [eax - 2], 0x74002e
mov dword [eax + 2], 0x740078
mov word [eax + 6], 0
lea esi, [ebp - 0x284]
push esi
call sym._FileExists
add esp, 4
test eax, eax
jne 0x404613
jmp 0x40465c
push dword [0x408210]
call dword [sym.imp.user32.dll_DestroyWindow]
push 0x203
push dword [ebp + 8]
call dword [sym.imp.user32.dll_LoadAcceleratorsW]
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x284]
push 0
push 0
push 0
push edi
call dword [sym.imp.user32.dll_GetMessageW]
test eax, eax
je 0x40484e
mov ebx, dword [sym.imp.user32.dll_IsDialogMessageW]
mov esi, dword [sym.imp.user32.dll_GetMessageW]
jmp 0x40481d
push 0
push 0
push 0
push edi
call esi
test eax, eax
je 0x40484e
push edi
push dword [0x408214]
call ebx
test eax, eax
jne 0x404810
push edi
push dword [ebp - 0x10]
push dword [0x408210]
call dword [sym.imp.user32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x404810
push edi
call dword [sym.imp.user32.dll_TranslateMessage]
push edi
call dword [sym.imp.user32.dll_DispatchMessageW]
jmp 0x404810
mov eax, dword [ebp - 0x27c]
add esp, 0x678
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
call sym._ShowLastError
push 1
call dword [sym.imp.kernel32.dll_ExitProcess]