Function at 0x406928
Capabilities:
Accept command line arguments
Create directory
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0
mov eax, dword [ebp + 8]
push eax
call sub.user32.dll_WINNLSEnableIME
mov ecx, dword [0x5918d8]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_SetMenu]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_GetWindowDC]
mov dword [0x469b50], eax
mov ecx, dword [0x469b50]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00401db4
add esp, 8
push 0xc
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_GetDeviceCaps]
mov dword [0x592850], eax
push 0x28
push 0
push 0x470150
call fcn.0045dcf0
add esp, 0xc
mov dword [0x4705ac], 0x470150
mov dword [0x46e7c4], 0x470150
mov ecx, dword [0x4705ac]
mov dword [ecx], 0x28
mov edx, dword [0x4705ac]
mov eax, dword [0x46212c]
mov dword [edx + 4], eax
mov ecx, dword [0x462130]
neg ecx
mov edx, dword [0x4705ac]
mov dword [edx + 8], ecx
mov eax, dword [0x4705ac]
mov word [eax + 0xc], 1
mov ecx, dword [0x4705ac]
mov dx, word [0x592850]
mov word [ecx + 0xe], dx
push 0
push 0
push 0x594940
push 0
mov eax, dword [0x4705ac]
push eax
mov ecx, dword [0x469b50]
push ecx
call dword [sym.imp.gdi32.dll_CreateDIBSection]
mov dword [0x592888], eax
mov edx, dword [0x469b50]
push edx
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov dword [0x46e8b0], eax
mov eax, dword [0x592888]
push eax
mov ecx, dword [0x46e8b0]
push ecx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x590f94], eax
push 0x28
push 0
push 0x470150
call fcn.0045dcf0
add esp, 0xc
mov dword [0x4705ac], 0x470150
mov dword [0x46e7c4], 0x470150
mov edx, dword [0x4705ac]
mov dword [edx], 0x28
mov eax, dword [0x4705ac]
mov ecx, dword [0x46213c]
mov dword [eax + 4], ecx
mov edx, dword [0x462140]
neg edx
mov eax, dword [0x4705ac]
mov dword [eax + 8], edx
mov ecx, dword [0x4705ac]
mov word [ecx + 0xc], 1
mov edx, dword [0x4705ac]
mov ax, word [0x592850]
mov word [edx + 0xe], ax
push 0
push 0
push 0x594944
push 0
mov ecx, dword [0x4705ac]
push ecx
mov edx, dword [0x469b50]
push edx
call dword [sym.imp.gdi32.dll_CreateDIBSection]
mov dword [0x59282c], eax
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov dword [0x46e898], eax
mov ecx, dword [0x59282c]
push ecx
mov edx, dword [0x46e898]
push edx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x469b68], eax
push 0x28
push 0
push 0x470150
call fcn.0045dcf0
add esp, 0xc
mov dword [0x4705ac], 0x470150
mov dword [0x46e7c4], 0x470150
mov eax, dword [0x4705ac]
mov dword [eax], 0x28
mov ecx, dword [0x4705ac]
mov edx, dword [0x462134]
mov dword [ecx + 4], edx
mov eax, dword [0x462138]
neg eax
mov ecx, dword [0x4705ac]
mov dword [ecx + 8], eax
mov edx, dword [0x4705ac]
mov word [edx + 0xc], 1
mov eax, dword [0x4705ac]
mov cx, word [0x592850]
mov word [eax + 0xe], cx
push 0
push 0
push 0x592824
push 0
mov edx, dword [0x4705ac]
push edx
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_CreateDIBSection]
mov dword [0x5928d4], eax
mov ecx, dword [0x469b50]
push ecx
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov dword [0x46fd34], eax
mov edx, dword [0x5928d4]
push edx
mov eax, dword [0x46fd34]
push eax
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x5915fc], eax
push 0
mov ecx, dword [0x592850]
push ecx
push 1
push 0x960
push 0x320
call dword [sym.imp.gdi32.dll_CreateBitmap]
mov dword [0x59282c], eax
mov edx, dword [0x469b50]
push edx
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
mov dword [0x46e898], eax
mov eax, dword [0x59282c]
push eax
mov ecx, dword [0x46e898]
push ecx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x469b68], eax
push 3
mov edx, dword [0x469b50]
push edx
call dword [sym.imp.gdi32.dll_SetStretchBltMode]
push 3
mov eax, dword [0x46e8b0]
push eax
call dword [sym.imp.gdi32.dll_SetStretchBltMode]
push 3
mov ecx, dword [0x46fd34]
push ecx
call dword [sym.imp.gdi32.dll_SetStretchBltMode]
push 3
mov edx, dword [0x46e898]
push edx
call dword [sym.imp.gdi32.dll_SetStretchBltMode]
push 0x42
xor eax, eax
mov ax, word [0x462168]
push eax
xor ecx, ecx
mov cx, word [0x462164]
push ecx
push 0
push 0
mov edx, dword [0x46e8b0]
push edx
call dword [sym.imp.gdi32.dll_PatBlt]
push 0x42
xor eax, eax
mov ax, word [0x462168]
push eax
xor ecx, ecx
mov cx, word [0x462164]
push ecx
push 0
push 0
mov edx, dword [0x46fd34]
push edx
call dword [sym.imp.gdi32.dll_PatBlt]
push 0xffffe1
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_SetTextColor]
push 0xffffff
mov ecx, dword [0x46e8b0]
push ecx
call dword [sym.imp.gdi32.dll_SetTextColor]
push 0xffffff
mov edx, dword [0x46fd34]
push edx
call dword [sym.imp.gdi32.dll_SetTextColor]
push 1
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_SetBkMode]
push 1
mov ecx, dword [0x46e8b0]
push ecx
call dword [sym.imp.gdi32.dll_SetBkMode]
push 1
mov edx, dword [0x46fd34]
push edx
call dword [sym.imp.gdi32.dll_SetBkMode]
push 6
call dword [sym.imp.user32.dll_GetSysColor]
push eax
mov eax, dword [0x469b50]
push eax
call dword [sym.imp.gdi32.dll_SetBkColor]
call dword [sym.imp.winmm.dll_midiOutGetNumDevs]
mov dword [0x594968], eax
call dword [sym.imp.winmm.dll_waveOutGetNumDevs]
mov dword [0x594964], eax
cmp dword [0x594968], 0
je 0x406d67
push 0
push 0x15e
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_EnableMenuItem]
push 0
push 0x168
mov edx, dword [0x5918d8]
push edx
call dword [sym.imp.user32.dll_EnableMenuItem]
push 0
push 0x154
mov eax, dword [0x5918d8]
push eax
call dword [sym.imp.user32.dll_EnableMenuItem]
mov dword [0x4682cc], 1
push 8
push 0x15e
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_CheckMenuItem]
jmp 0x406dac
mov dword [0x4682cc], 0
push 3
push 0x15e
mov edx, dword [0x5918d8]
push edx
call dword [sym.imp.user32.dll_EnableMenuItem]
push 3
push 0x168
mov eax, dword [0x5918d8]
push eax
call dword [sym.imp.user32.dll_EnableMenuItem]
push 3
push 0x154
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_EnableMenuItem]
push 0x100000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x58ff70], eax
push 0x400000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x48faf8], eax
push 0x400000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x48d920], eax
push 0x400000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x4679d4], eax
push 0x100000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x592858], eax
push 0x8000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x590f88], eax
push 0x8000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x590f8c], eax
push 0x7d000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x590f90], eax
push 0x8000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x5938e8], eax
push 0x8000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x58ff74], eax
push 0x2800
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x48fb2c], eax
push 0x3d0900
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x592834], eax
push 0x27100
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x46a228], eax
push 0x4000
push 2
call dword [sym.imp.kernel32.dll_GlobalAlloc]
push eax
call dword [sym.imp.kernel32.dll_GlobalLock]
mov dword [0x48fb20], eax
cmp dword [0x58ff70], 0
jne 0x406f29
push 0
push 0x462990
push 0x462998
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x48faf8], 0
jne 0x406f48
push 0
push 0x4629b8
push 0x4629c0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x48d920], 0
jne 0x406f67
push 0
push 0x4629e4
push 0x4629ec
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x4679d4], 0
jne 0x406f86
push 0
push 0x462a10
push 0x462a18
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x592858], 0
jne 0x406fa5
push 0
push 0x462a3c
push 0x462a44
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x590f88], 0
jne 0x406fc4
push 0
push 0x462a64
push 0x462a6c
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x590f8c], 0
jne 0x406fe3
push 0
push 0x462a8c
push 0x462a94
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x590f90], 0
jne 0x407002
push 0
push 0x462ab4
push 0x462abc
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x5938e8], 0
jne 0x407021
push 0
push 0x462adc
push 0x462ae4
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x58ff74], 0
jne 0x407040
push 0
push 0x462b04
push 0x462b0c
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x48fb2c], 0
jne 0x40705f
push 0
push 0x462b2c
push 0x462b34
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x592834], 0
jne 0x40707e
push 0
push 0x462b54
push 0x462b5c
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
cmp dword [0x48fb20], 0
jne 0x40709d
push 0
push 0x462b7c
push 0x462b84
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x474394], eax
mov eax, dword [0x474394]
push eax
push 0x46c7a8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x46c7a8
call fcn.00432426
add esp, 4
push 0x46c7a8
call fcn.00429519
add esp, 4
mov word [0x468780], ax
xor ecx, ecx
mov cx, word [0x468780]
cmp ecx, 0xfa
jle 0x407113
mov word [0x594a14], 0xff
push 0x30
push 0x462ba4
push 0x462bac
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_DestroyWindow]
mov dword [0x48d928], 0
mov dword [0x48d92c], 0
mov ecx, dword [0x48d928]
mov dl, byte [ecx + 0x46c7a8]
mov byte [0x474220], dl
mov eax, dword [0x48d928]
add eax, 1
mov dword [0x48d928], eax
xor ecx, ecx
mov cl, byte [0x474220]
cmp ecx, 0x22
je 0x407173
mov edx, dword [0x48d92c]
mov al, byte [0x474220]
mov byte [edx + 0x5928e8], al
mov ecx, dword [0x48d92c]
add ecx, 1
mov dword [0x48d92c], ecx
xor edx, edx
mov dl, byte [0x474220]
test edx, edx
jne 0x407127
mov eax, dword [0x48d92c]
mov cl, byte [eax + 0x5928e8]
mov byte [0x474220], cl
mov edx, dword [0x48d92c]
sub edx, 1
mov dword [0x48d92c], edx
xor eax, eax
mov al, byte [0x474220]
cmp eax, 0x5c
jne 0x40717f
mov ecx, dword [0x48d92c]
add ecx, 1
mov dword [0x48d92c], ecx
mov edx, dword [0x48d92c]
add edx, 1
mov dword [0x48d92c], edx
mov eax, dword [0x48d92c]
mov byte [eax + 0x5928e8], 0
push 0x5928e8
push 0x46bc28
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x46bc28
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462bc0
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push 0x5928e8
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x478418], eax
cmp dword [0x478418], 0xffffffff
jne 0x407244
mov word [0x467ea0], 1
mov word [0x594a00], 1
jmp 0x40725a
mov word [0x467ea0], 0
mov ecx, dword [0x478418]
push ecx
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x46bc28
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462bd0
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push 0x5928e8
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x478418], eax
cmp dword [0x478418], 0xffffffff
jne 0x4072b9
mov word [0x594a00], 1
mov word [0x467ea2], 1
jmp 0x4072cf
mov word [0x467ea2], 0
mov edx, dword [0x478418]
push edx
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x46bc28
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462bdc
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push 0x5928e8
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x478418], eax
cmp dword [0x478418], 0xffffffff
jne 0x40732e
mov word [0x594a00], 1
mov word [0x467ea4], 1
jmp 0x407343
mov word [0x467ea4], 0
mov eax, dword [0x478418]
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x46bc28
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462be8
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push 0x5928e8
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x478418], eax
cmp dword [0x478418], 0xffffffff
jne 0x4073a2
mov word [0x594a00], 1
mov word [0x467ea6], 1
jmp 0x4073b8
mov word [0x467ea6], 0
mov ecx, dword [0x478418]
push ecx
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0x46bc28
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462bf4
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0x80000000
push 0x5928e8
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [0x478418], eax
cmp dword [0x478418], 0xffffffff
jne 0x407417
mov word [0x594a00], 1
mov word [0x467ea8], 1
jmp 0x40742d
mov word [0x467ea8], 0
mov edx, dword [0x478418]
push edx
call dword [sym.imp.kernel32.dll_CloseHandle]
mov byte [0x4622a4], 0xd
mov byte [0x4622a5], 0xa
push 0x462270
push 0x467eb8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x4622a4
push 0x467eb8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4622a8
push 0x467eb8
call dword [sym.imp.kernel32.dll_lstrcatA]
mov byte [0x462310], 0xd
mov byte [0x462311], 0xa
push 0x4622f0
push 0x468380
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462310
push 0x468380
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x462318
push 0x468380
call dword [sym.imp.kernel32.dll_lstrcatA]
xor eax, eax
mov ax, word [0x594a00]
test eax, eax
je 0x407612
push 0x462c00
push 0x46d7b0
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x46d7b0
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
mov dword [0x46c6f0], eax
cmp dword [0x46c6f0], 5
jne 0x407527
push 0x46d7b0
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462c04
push 0x5928e8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x5928e8
call fcn.004294e2
add esp, 4
and eax, 0xffff
mov dword [0x48d928], eax
cmp dword [0x48d928], 0
jne 0x407527
jmp 0x407612
mov cl, byte [0x46d7b0]
add cl, 1
mov byte [0x46d7b0], cl
mov word [0x594a0c], 0
xor edx, edx
mov dx, word [0x594a0c]
test edx, edx
jne 0x4075a3
movsx eax, byte [0x46d7b0]
cmp eax, 0x5b
jne 0x4075a1
push 0x35
push 0x462c14
push 0x467eb8
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
mov dword [0x46b3e0], eax
mov word [0x594b74], 0
mov word [0x594b78], 0
cmp dword [0x46b3e0], 2
jne 0x4075a1
mov word [0x594a14], 0xff
mov eax, 1
jmp 0x408363
jmp 0x407605
movsx edx, byte [0x46d7b0]
cmp edx, 0x5b
jne 0x407605
push 0x24
push 0x462c1c
push 0x468380
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
mov dword [0x46b3e0], eax
mov word [0x594b74], 0
mov word [0x594b78], 0
cmp dword [0x46b3e0], 6
je 0x4075fa
mov word [0x594a14], 0xff
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_DestroyWindow]
jmp 0x407612
mov word [0x594a10], 1
jmp 0x407612
mov edx, 1
test edx, edx
jne 0x4074c9
mov al, byte [0x46d7b0]
mov byte [0x474190], al
push 0x462c24
push 0x46b818
call dword [sym.imp.kernel32.dll_lstrcpyA]
mov cl, byte [0x474190]
mov byte [0x46b818], cl
xor edx, edx
mov dx, word [0x467ea0]
test edx, edx
jne 0x407657
push 0x46bc28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x407667
push 0x46b818
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462c28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4705d8
call fcn.0045a344
add esp, 4
mov dword [0x59494c], eax
cmp dword [0x59494c], 0
jne 0x4076c5
push 0
push 0x462c38
push 0x462c40
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594a14], 0xff
push 0
push 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsA]
mov eax, 1
jmp 0x408363
xor ecx, ecx
mov cx, word [0x467ea2]
test ecx, ecx
jne 0x4076e4
push 0x46bc28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x4076f4
push 0x46b818
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462c58
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4705d8
call fcn.0045a344
add esp, 4
mov dword [0x467ae8], eax
cmp dword [0x467ae8], 0
jne 0x407752
push 0
push 0x462c64
push 0x462c6c
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594a14], 0xff
push 0
push 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsA]
mov eax, 1
jmp 0x408363
xor eax, eax
mov ax, word [0x594a10]
test eax, eax
jne 0x4077ef
xor ecx, ecx
mov cx, word [0x467ea4]
test ecx, ecx
jne 0x407781
push 0x46bc28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x407791
push 0x46b818
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462c84
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4705d8
call fcn.0045a344
add esp, 4
mov dword [0x467d18], eax
cmp dword [0x467d18], 0
jne 0x4077ef
push 0
push 0x462c90
push 0x462c98
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594a14], 0xff
push 0
push 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsA]
mov eax, 1
jmp 0x408363
xor eax, eax
mov ax, word [0x467ea6]
test eax, eax
jne 0x40780d
push 0x46bc28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x40781d
push 0x46b818
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462cb0
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4705d8
call fcn.0045a344
add esp, 4
mov dword [0x58ff6c], eax
cmp dword [0x58ff6c], 0
jne 0x40787b
push 0
push 0x462cbc
push 0x462cc4
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594a14], 0xff
push 0
push 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsA]
mov eax, 1
jmp 0x408363
xor edx, edx
mov dx, word [0x467ea8]
test edx, edx
jne 0x40789a
push 0x46bc28
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x4078aa
push 0x46b818
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462cdc
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4705d8
call fcn.0045a344
add esp, 4
mov dword [0x5918e0], eax
cmp dword [0x5918e0], 0
jne 0x407908
push 0
push 0x462ce8
push 0x462cf0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594a14], 0xff
push 0
push 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsA]
mov eax, 1
jmp 0x408363
push 0x104
push 0x474278
call dword [sym.imp.kernel32.dll_GetWindowsDirectoryA]
mov byte [0x47427a], 0
push 0x462d08
push 0x474278
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x474278
push 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
mov dword [0x594b68], eax
push 0x462d10
push 0x474278
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0
push 0x474278
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
push 0x462d18
push 0x474278
call dword [sym.imp.kernel32.dll_lstrcatA]
push 0x4679e0
push 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryA]
mov dword [0x594b68], eax
mov ecx, dword [0x594b68]
movsx edx, byte [ecx + 0x4679df]
cmp edx, 0x5c
je 0x4079a8
push 0x462d1c
push 0x4679e0
call dword [sym.imp.kernel32.dll_lstrcatA]
mov dword [0x594b68], 0
push 0x2da4
push 0
push 0x471298
call fcn.0045dcf0
add esp, 0xc
push 0x153a6
push 0
push 0x478428
call fcn.0045dcf0
add esp, 0xc
push 0x462d20
push 0x471298
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d24
push 0x4712b8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d28
push 0x4712d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d2c
push 0x4712f8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d30
push 0x471318
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d34
push 0x471338
call dword [sym.imp.kernel32.dll_lstrcpyA]
call fcn.004573a4
push 0x462d38
push 0x46c610
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d3c
push 0x592868
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d40
push 0x46b3c0
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d44
push 0x46c5f0
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d48
push 0x46c438
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d4c
push 0x467988
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462d50
push 0x468dc8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x474278
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x462210
push 0x4705d8
call dword [sym.imp.kernel32.dll_lstrcatA]
mov eax, dword [0x48faf8]
push eax
push 0x4705d8
call fcn.00402926
add esp, 8
test eax, eax
je 0x407aff
push 0x153a6
mov ecx, dword [0x48faf8]
push ecx
push 0x478428
call fcn.0045dd90
add esp, 0xc
call fcn.0042e37d
push 0x462d58
push 0
push 0
call fcn.0041daad
add esp, 0xc
test eax, eax
je 0x407b44
push 0
push 0x462d60
push 0x462d6c
mov edx, dword [0x592820]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594b74], 0
mov word [0x594b78], 0
push 0xcc0020
push 0
push 0
mov eax, dword [0x46fd34]
push eax
push 0x258
push 0x320
push 0
push 0
mov ecx, dword [0x46e898]
push ecx
call dword [sym.imp.gdi32.dll_BitBlt]
push 0x462d78
push 0
push 0
call fcn.0041daad
add esp, 0xc
test eax, eax
je 0x407bae
push 0
push 0x462d84
push 0x462d90
mov edx, dword [0x592820]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594b74], 0
mov word [0x594b78], 0
push 0x7a120
mov eax, dword [0x48faf8]
push eax
mov ecx, dword [0x590f90]
push ecx
call fcn.0045dd90
add esp, 0xc
push 0x258
push 0x320
push 0
push 0
push 0x590f78
call dword [sym.imp.user32.dll_SetRect]
push 4
call dword [sym.imp.gdi32.dll_GetStockObject]
push eax
push 0x590f78
mov edx, dword [0x46fd34]
push edx
call dword [sym.imp.user32.dll_FillRect]
push 0x462da0
push 0
push 0
call fcn.0041daad
add esp, 0xc
test eax, eax
je 0x407c66
push 0
push 0x462da8
push 0x462db0
mov eax, dword [0x592820]
push eax
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594b74], 0
mov word [0x594b78], 0
push 0xff0062
push 0
push 0
mov ecx, dword [0x46fd34]
push ecx
push 0x4a
push 0xa0
push 0x8c
push 0
mov edx, dword [0x46fd34]
push edx
call dword [sym.imp.gdi32.dll_BitBlt]
push 0xcc0020
push 0
push 0
mov eax, dword [0x46fd34]
push eax
push 0x258
push 0x320
push 0
push 0x640
mov ecx, dword [0x46fd34]
push ecx
call dword [sym.imp.gdi32.dll_BitBlt]
push 0x462dd4
push 0
push 0
call fcn.0041daad
add esp, 0xc
test eax, eax
je 0x407cd3
push 0
push 0x462ddc
push 0x462de4
mov edx, dword [0x592820]
push edx
call dword [sym.imp.user32.dll_MessageBoxA]
mov word [0x594b74], 0
mov word [0x594b78], 0
push 0xcc0020
push 0
push 0
mov eax, dword [0x46fd34]
push eax
push 0x258
push 0x320
push 0
push 0x960
mov ecx, dword [0x46fd34]
push ecx
call dword [sym.imp.gdi32.dll_BitBlt]
mov dword [0x592860], 0
mov dword [0x59239c], 0
xor edx, edx
mov dx, word [0x479b9a]
cmp edx, 1
jne 0x407d30
push 0
push 0
call fcn.0045b578
add esp, 8
jmp 0x407d4e
xor eax, eax
mov ax, word [0x479b8e]
imul eax, eax, 0x64
cdq
mov ecx, 0x11b
idiv ecx
push eax
push 0
call fcn.0045b578
add esp, 8
xor edx, edx
mov dx, word [0x479b9c]
cmp edx, 1
jne 0x407d6a
push 0
push 4
call fcn.0045b578
add esp, 8
jmp 0x407d88
xor eax, eax
mov ax, word [0x479b90]
imul eax, eax, 0x64
cdq
mov ecx, 0x11b
idiv ecx
push eax
push 4
call fcn.0045b578
add esp, 8
xor edx, edx
mov dx, word [0x479b9e]
cmp edx, 1
jne 0x407da4
push 0
push 3
call fcn.0045b578
add esp, 8
jmp 0x407dc2
xor eax, eax
mov ax, word [0x479b92]
imul eax, eax, 0x64
cdq
mov ecx, 0x11b
idiv ecx
push eax
push 3
call fcn.0045b578
add esp, 8
mov word [0x479ab4], 0
xor edx, edx
mov dx, word [0x479ab6]
test edx, edx
jne 0x407df3
mov word [0x479ab6], 1
mov word [0x479aac], 0xa
mov word [0x479aaa], 0xa
xor eax, eax
mov ax, word [0x479bc6]
test eax, eax
jne 0x407f35
mov word [0x479bc6], 1
mov word [0x479baa], 0x64
mov word [0x479bac], 0x28
mov word [0x479bae], 0x64
mov word [0x479bb0], 0x28
mov word [0x479bc8], 0xc8
mov word [0x479bca], 0x64
mov word [0x479bcc], 0
mov word [0x479bce], 1
mov word [0x479bb6], 0
mov word [0x479bd4], 1
mov word [0x479bd6], 1
mov word [0x479bd8], 1
mov word [0x479bda], 0x2bc
mov word [0x479bd4], 1
mov word [0x479bd6], 1
mov word [0x479bb4], 1
mov word [0x479bde], 0xc8
mov word [0x479b8a], 0
mov word [0x479be0], 0
mov word [0x479be2], 0x1a
mov word [0x479be4], 0xd
mov word [0x479be6], 0x2a
mov word [0x479be8], 0x1ce
mov word [0x479bea], 0x18
mov word [0x479bec], 4
mov word [0x479bee], 0x21
mov word [0x479bf0], 0x1a
mov word [0x479bf2], 0x197
mov word [0x479bf4], 0xd
mov word [0x479bf6], 0x29e
mov word [0x479bf8], 0x230
mov word [0x479bfa], 0x10
mov word [0x479bfc], 1
mov cx, word [0x479be0]
mov word [0x469f88], cx
mov dx, word [0x479be2]
mov word [0x469f84], dx
mov ax, word [0x479be4]
mov word [0x46a02c], ax
mov cx, word [0x479be6]
mov word [0x46a030], cx
mov dx, word [0x479be8]
mov word [0x46a034], dx
mov ax, word [0x479bea]
mov word [0x592854], ax
mov cx, word [0x479bec]
mov word [0x474408], cx
mov dx, word [0x479bee]
mov word [0x5923a8], dx
mov ax, word [0x479bf0]
mov word [0x471288], ax
mov cx, word [0x479bf2]
mov word [0x471290], cx
mov dx, word [0x479bf4]
mov word [0x592814], dx
mov ax, word [0x479bf6]
mov word [0x46c02c], ax
mov cx, word [0x479bf8]
mov word [0x46c030], cx
mov dx, word [0x479bfa]
mov word [0x5918dc], dx
mov ax, word [0x479bfc]
mov word [0x5923a0], ax
mov cx, word [0x474408]
mov word [0x467bfc], cx
xor edx, edx
mov dx, word [0x46a030]
mov dword [0x592404], edx
xor eax, eax
mov ax, word [0x46a034]
mov dword [0x592408], eax
xor ecx, ecx
mov cx, word [0x469f84]
mov dword [0x474238], ecx
xor edx, edx
mov dx, word [0x46a02c]
mov dword [0x47423c], edx
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
mov dword [0x474240], 0
mov dword [0x474244], 0
mov dword [0x474248], 0
mov byte [0x47424c], 0
mov byte [0x47424d], 0
mov byte [0x47424e], 0
mov byte [0x47424f], 0x80
mov byte [0x474250], 0
mov byte [0x474251], 0
mov byte [0x474252], 0
mov byte [0x474253], 1
xor eax, eax
mov ax, word [0x469f88]
test eax, eax
jne 0x4080c1
push 0x462e08
push 0x474254
call dword [sym.imp.kernel32.dll_lstrcpyA]
jmp 0x4080d1
push 0x462e18
push 0x474254
call dword [sym.imp.kernel32.dll_lstrcpyA]
push 0x474238
call dword [sym.imp.gdi32.dll_CreateFontIndirectA]
mov dword [0x474380], eax
mov ecx, dword [0x474380]
push ecx
mov edx, dword [0x46e8b0]
push edx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x46e8a8], eax
mov eax, dword [0x474380]
push eax
mov ecx, dword [0x469b50]
push ecx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x48ec9c], eax
mov edx, dword [0x474380]
push edx
mov eax, dword [0x46fd34]
push eax
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x48ec98], eax
call fcn.00401bac
xor ecx, ecx
mov cx, word [0x469f88]
test ecx, ecx
jne 0x408168
push 0x462e24
push 0x190
xor edx, edx
mov dx, word [0x469f84]
push edx
xor eax, eax
mov ax, word [0x46a02c]
push eax
call fcn.0044da2b
add esp, 0x10
mov dword [0x470144], eax
jmp 0x408193
push 0x462e34
push 0x190
xor ecx, ecx
mov cx, word [0x469f84]
push ecx
xor edx, edx
mov dx, word [0x46a02c]
push edx
call fcn.0044da2b
add esp, 0x10
mov dword [0x470144], eax
mov eax, dword [0x470144]
push eax
mov ecx, dword [0x46e8b0]
push ecx
call dword [sym.imp.gdi32.dll_SelectObject]
mov dword [0x469b74], eax
push 0x4743d0
mov edx, dword [0x46e8b0]
push edx
call dword [sym.imp.gdi32.dll_GetTextMetricsA]
mov word [0x474230], 0
mov word [0x474232], 1
mov eax, dword [0x474230]
mov dword [0x46bc18], eax
mov ecx, dword [0x474230]
mov dword [0x46bc24], ecx
mov word [0x474230], 0
mov word [0x474232], 0
mov edx, dword [0x474230]
mov dword [0x46bc1c], edx
mov eax, dword [0x474230]
mov dword [0x46bc20], eax
mov word [0x48d7d4], 1
push 0
push 0x154
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_CheckMenuItem]
push 0
push 0x15e
mov edx, dword [0x5918d8]
push edx
call dword [sym.imp.user32.dll_CheckMenuItem]
push 0
push 0x168
mov eax, dword [0x5918d8]
push eax
call dword [sym.imp.user32.dll_CheckMenuItem]
xor ecx, ecx
mov cx, word [0x479b8c]
cmp ecx, 0xff
jne 0x408280
mov dword [0x4682cc], 0
push 8
push 0x154
mov edx, dword [0x5918d8]
push edx
call dword [sym.imp.user32.dll_CheckMenuItem]
xor eax, eax
mov ax, word [0x479b8c]
cmp eax, 1
jne 0x4082ab
mov dword [0x4682cc], 1
push 8
push 0x15e
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_CheckMenuItem]
xor edx, edx
mov dx, word [0x479b8c]
test edx, edx
jne 0x4082d5
mov dword [0x4682cc], 2
push 8
push 0x168
mov eax, dword [0x5918d8]
push eax
call dword [sym.imp.user32.dll_CheckMenuItem]
push 0
push 0x3e6
mov ecx, dword [0x5918d8]
push ecx
call dword [sym.imp.user32.dll_EnableMenuItem]
call dword [sym.imp.comctl32.dll_InitCommonControls]
mov dword [0x473a9c], 0
mov word [0x473bb4], 0
mov byte [0x593900], 0
mov byte [0x46fd08], 0
push 0x462e40
push 0x5918f8
call dword [sym.imp.kernel32.dll_lstrcpyA]
mov word [0x59284c], 0
xor edx, edx
mov dx, word [0x594ab8]
test edx, edx
je 0x408352
mov word [0x594a30], 1
push 8
push 0x834
mov eax, dword [0x5918d8]
push eax
call dword [sym.imp.user32.dll_CheckMenuItem]
call dword [sym.imp.kernel32.dll_GetTickCount]
push eax
call fcn.0045dd50
add esp, 4
xor eax, eax
pop ebp
ret