Function at 0x401cfd
Capabilities:
Copy file
Get file attributes
Set file attributes
Write file on windows

Disassembly:
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x422140], eax
call sub.comctl32.dll_InitCommonControls
push str.BWMeter_7.2.1_PatcH
push 0
call sub.user32.dll_FindWindowA
cmp eax, 0
je 0x401cde
push eax
push 9
push eax
call sub.user32.dll_ShowWindow
pop eax
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, 0
ret
push 0
push 0x401cfd
push 0
push 0x3e8
push dword [0x422140]
call sub.user32.dll_DialogBoxParamA
push eax
call sub.kernel32.dll_ExitProcess
push ebp
mov ebp, esp
add esp, 0xfffffe7c
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
pop dword [0x422154]
cmp eax, 0x110
jne 0x401e7a
push 0xc8
push dword [0x422140]
call sub.user32.dll_LoadIconA
push eax
push 1
push 0x80
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
push str.BWMeter_7.2.1_PatcH
push dword [ebp + 8]
call sub.user32.dll_SetWindowTextA
push 0x421030
push 0x3ea
call fcn.004013bb
mov dword [0x422558], eax
push dword [0x422558]
call sub.gdi32.dll_CreatePatternBrush
mov dword [0x422560], eax
push 0x42106a
call sub.gdi32.dll_CreateFontIndirectA
mov dword [0x42255c], eax
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_GetDlgItem
mov dword [0x422150], eax
push 1
push dword [0x42255c]
push 0x30
push eax
call sub.user32.dll_SendMessageA
push 0x3ed
push 0x1f5
push 0x1f6
push 0x1f4
push 0xb4
push 0x1d
push dword [ebp + 8]
call fcn.00401000
mov dword [0x422144], eax
push 0x3ee
push 0x259
push 0x25a
push 0x258
push 0xb4
push 0x9e
push dword [ebp + 8]
call fcn.00401000
mov dword [0x422148], eax
push 0x3e9
push 0x2bd
push 0x2be
push 0x2bc
push 0xb3
push 0x127
push dword [ebp + 8]
call fcn.00401000
mov dword [0x42214c], eax
push str.press_the___PATCH___btn__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
call sub.user32.dll_GetForegroundWindow
push 1
push 0xac44
push 0x3e8
push section..data
push eax
call fcn.0040441f
push 0
call fcn.0040445a
push dword [ebp + 8]
call fcn.004014bc
call fcn.0040142c
push 0
push 1
push 0xf1
push 0x3ec
push dword [ebp + 8]
call sub.user32.dll_SendDlgItemMessageA
jmp 0x4021cb
cmp eax, 0x201
jne 0x401e98
push dword [ebp + 0x14]
push 2
push 0xa1
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
jmp 0x4021cb
cmp eax, 0x136
jne 0x401ead
mov eax, dword [0x422560]
leave
ret 0x10
cmp eax, 0xf
jne 0x401ef5
lea eax, [ebp - 0x184]
push eax
push dword [ebp + 8]
call sub.user32.dll_BeginPaint
mov edi, eax
lea ebx, [0x4211be]
push ebx
push dword [ebp + 8]
call sub.user32.dll_GetClientRect
push 0
call sub.gdi32.dll_CreateSolidBrush
push eax
push ebx
push edi
call sub.user32.dll_FrameRect
lea eax, [ebp - 0x184]
push eax
push dword [ebp + 8]
call sub.user32.dll_EndPaint
jmp 0x4021cb
cmp eax, 0x138
jne 0x401f6e
push 1
push dword [ebp + 0x10]
call sub.gdi32.dll_SetBkMode
push 0xffffff
push dword [ebp + 0x10]
call sub.gdi32.dll_SetTextColor
push 0x422564
push dword [ebp + 8]
call sub.user32.dll_GetWindowRect
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_GetDlgItem
push 0x422574
push eax
call sub.user32.dll_GetWindowRect
mov edi, dword [0x422564]
mov esi, dword [0x422574]
sub edi, esi
mov ebx, dword [0x422568]
mov edx, dword [0x422578]
sub ebx, edx
push 0
push ebx
push edi
push dword [ebp + 0x10]
call sub.gdi32.dll_SetBrushOrgEx
mov eax, dword [0x422560]
leave
ret 0x10
cmp eax, 0x111
jne 0x4021b0
cmp dword [ebp + 0x10], 0x3ed
jne 0x402176
lea eax, [ebp - 0x13e]
push eax
push str.BWMeter.exe
call sub.kernel32.dll_FindFirstFileA
cmp eax, 0xffffffff
jne 0x401fb3
push str.BWMeter.exe_NOT_FOUND_
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
jmp 0x4021cb
mov eax, dword [0x421188]
cmp dword [ebp - 0x11e], eax
je 0x401fd7
push str.WRONG_FiLE_SiZE__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
jmp 0x402174
push str.FiLE_SiZE_CHECK__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push 0x422e27
push 0x422e23
push str.BWMeter.exe
call fcn.00402360
mov ecx, dword [0x422e27]
mov eax, dword [0x422e23]
mov dword [ebp - 0x144], eax
push dword [ebp - 0x11e]
push dword [ebp - 0x144]
call fcn.00401464
mov edx, dword [0x421184]
cmp eax, edx
je 0x402040
push str.WRONG_CRC_SiZE__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
jmp 0x402174
push str.CRC32_SiZE_CHECK__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push str.BWMeter.exe
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0x80
je 0x402072
push 0x80
push str.BWMeter.exe
call sub.kernel32.dll_SetFileAttributesA
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
push str.BWMeter.exe
call sub.kernel32.dll_CreateFileA
cmp eax, 0xffffffff
je 0x402174
mov dword [0x422584], eax
push 0
push 0
push 0xf0
push 0x3ec
push dword [ebp + 8]
call sub.user32.dll_SendDlgItemMessageA
cmp eax, 1
jne 0x4020dc
push 1
push str.BWMeter.exe.backup
push str.BWMeter.exe
call sub.kernel32.dll_CopyFileA
push str.BACKUP_FiLE_MADE__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
jmp 0x4020ee
push str.NO_BACKUP_FiLE_MADE__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push 0
push 0
push dword [0x42118e]
push dword [0x422584]
call sub.kernel32.dll_SetFilePointer
cmp eax, 0xffffffff
jne 0x402129
push dword [0x422584]
call sub.kernel32.dll_CloseHandle
push str.FiLE_BUSY_::_NEED_TO_CLOSE_THE_APP__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
leave
ret 0x10
push 0
push 0x422588
push 2
push 0x42118c
push dword [0x422584]
call sub.kernel32.dll_WriteFile
push dword [0x422584]
call sub.kernel32.dll_CloseHandle
push str.PATCH_SUCCEEDED__
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push 0x3ed
push dword [ebp + 8]
call sub.user32.dll_GetDlgItem
push 0
push eax
call sub.user32.dll_EnableWindow
jmp 0x4021cb
cmp dword [ebp + 0x10], 0x3ee
jne 0x402197
push 0
push 0x4018f5
push dword [ebp + 8]
push 0x7d0
push 0
call sub.user32.dll_DialogBoxParamA
jmp 0x4021cb
cmp dword [ebp + 0x10], 0x3e9
jne 0x4021cb
push 0
push 0
push 0x10
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
jmp 0x4021cb
cmp eax, 0x10
jne 0x4021cb
push 0
call fcn.00404468
call fcn.00404476
push 0
push dword [ebp + 8]
call sub.user32.dll_EndDialog
xor eax, eax
leave
ret 0x10