Function at 0x4010a1
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Create process on windows
Create shortcut via ishelllink
Create thread
Download and write a file
Encrypt data using speck
Enumerate gui resources
Extract resource via kernel32 functions
Get disk information
Get graphical window text
Manipulate console buffer
Read and send data from client to server
Read file on windows
Receive and write data from server to client
Receive data
Receive data on socket
Resolve function by parsing pe exports
Send data
Send data on socket
Set console window title
Set socket configuration
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x13ec
call fcn.004151d0
mov eax, dword [0x441054]
xor eax, esp
mov dword [esp + 0x13e8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push edi
xor ebx, ebx
push 0x53
pop edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], ebx
mov dword [0x4438bc], eax
cmp eax, ebx
jne 0x40121b
mov eax, dword [0x4438b8]
mov dword [esp + 0x504], eax
mov eax, dword [0x4438b4]
push 1
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ebx
push eax
mov dword [esp + 0x1c], eax
call esi
mov dword [esp + 0x1c], eax
cmp eax, ebx
je 0x4011d1
push 1
call dword [sym.imp.GDI32.dll_GetMapMode]
push eax
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SetMapMode]
lea eax, [esp + 0x514]
push eax
push 0x18
push ebx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x518]
mov edi, dword [sym.imp.GDI32.dll_DPtoLP]
mov dword [esp + 0x4f4], eax
mov eax, dword [esp + 0x51c]
mov dword [esp + 0x4f8], eax
push 1
lea eax, [esp + 0x4f8]
push eax
push 1
call edi
push 1
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x1c]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
call edi
push 0xcc0020
push dword [esp + 0x58]
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x508]
push dword [esp + 0x508]
push dword [esp + 0x38]
push dword [esp + 0x520]
push 1
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [esp + 0x1c]
push dword [esp + 0x18]
call esi
push 0x53
pop edi
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_DeleteDC]
test byte [0x4438e0], 1
jne 0x4011f1
or dword [0x4438e0], 1
mov dword [0x4438dc], edi
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push ebx
push ebx
mov esi, eax
push 0x800
push esi
call dword [sym.imp.USER32.dll_AppendMenuA]
push dword [esp + 0x20]
push edi
push 4
push esi
call dword [sym.imp.USER32.dll_AppendMenuA]
mov eax, dword [esp + 0x34]
push dword [0x4438b4]
mov dword [esp + 0x73c], eax
xor eax, eax
mov word [esp + 0x4f8], ax
lea edi, [esp + 0x4fa]
push ebx
stosw word es:[edi], ax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
lea eax, [esp + 0x10e0]
push eax
push ebx
push 0x180
push edi
call esi
movsx eax, word [esp + 0x4f4]
shr edi, 0x10
mov dword [esp + 0x10], edi
cmp eax, edi
je 0x401276
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov ecx, dword [0x4438b4]
mov eax, dword [0x4438b8]
lea ecx, [ecx + eax - 4]
mov dword [0x4438b4], ecx
cmp dword [esp + 0x10], ebx
jge 0x40129f
mov dword [esp + 0x28], 0x121
mov dword [esp + 0x10], ebx
jmp 0x4012f8
mov dword [esp + 0x2c], 0x1c6
cmp dword [esp + 0x10], ebx
je 0x4012f8
lea eax, [esp + 0x504]
push eax
push 0x4004667f
push dword [esp + 0x28]
call dword [sym.imp.WS2_32.dll_ioctlsocket]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x574]
push eax
push ebx
push dword [esp + 0x510]
lea eax, [esp + 0x850]
push eax
mov dword [esp + 0x34], 0x1c
push dword [esp + 0x34]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov eax, dword [0x4438b8]
cmp eax, ebx
je 0x40130c
mov ecx, dword [esp + 0x48]
sub ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
lea ecx, [eax + eax - 4]
mov eax, dword [esp + 0x10]
sub ecx, eax
mov edi, eax
neg edi
sbb edi, edi
mov dword [0x4438b8], ecx
mov ecx, dword [0x4438c8]
and edi, 0xfffffdad
add edi, 0x253
add ecx, eax
mov dword [esp + 0x18], edi
jne 0x401348
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x38], eax
jmp 0x40135f
mov eax, dword [esp + 0x34]
add eax, dword [0x4438b4]
mov ecx, dword [esp + 0x2c]
inc ecx
imul eax, ecx
mov dword [0x4438b4], eax
push 0x1000
push 0x7d0
call fcn.004042b0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
inc eax
pop ecx
pop ecx
mov dword [esp + 0x44], eax
cmp eax, ebx
je 0x40142b
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x540]
push eax
mov dword [esp + 0x528], ebx
mov dword [esp + 0x52c], ebx
mov dword [esp + 0x530], 0x100
mov dword [esp + 0x534], ebx
mov dword [esp + 0x538], ebx
call dword [sym.imp.USER32.dll_SetRect]
push ebx
push ebx
push 0x418
push ebx
call esi
mov dword [esp + 0x30], eax
cmp dword [esp + 0x10], ebx
je 0x40143c
jmp 0x401415
lea eax, [esp + 0x514]
push eax
push 1
push 0x414
push ebx
call esi
lea eax, [esp + 0x554]
push eax
push dword [esp + 0x34]
push 0x41d
push ebx
call esi
lea eax, [esp + 0x554]
push eax
lea eax, [esp + 0x534]
push eax
push eax
call dword [sym.imp.USER32.dll_UnionRect]
inc dword [esp + 0x30]
mov eax, dword [esp + 0x538]
sub eax, dword [esp + 0x530]
cmp eax, dword [esp + 0x2c]
jl 0x4013d4
jmp 0x40143c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx + 4]
mov dword [0x4438b4], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp ecx, ebx
je 0x40145c
lea ecx, [ecx + eax + 0xf]
mov dword [esp + 0x20], ecx
mov ecx, dword [0x4438b4]
add ecx, eax
add dword [esp + 0x2c], ecx
cmp eax, ebx
jne 0x40146c
mov ecx, dword [esp + 0x20]
mov dword [0x4438cc], ecx
jmp 0x4014af
mov esi, dword [esp + 0x34]
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x5ac]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
mov dword [esp + 0x50c], eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push dword [esp + 0x504]
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
add ecx, dword [0x4438b4]
add dword [esp + 0x38], edi
lea ecx, [ecx + eax + 1]
test ecx, ecx
je 0x4014cf
mov ecx, dword [esp + 0x38]
mov dword [0x4438c4], ecx
cmp eax, dword [0x4438c8]
jle 0x4015c6
movzx esi, word [esp + 0x28]
push ebx
push dword [esp + 0x24]
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], ebx
call dword [sym.imp.MSACM32.dll_acmDriverOpen]
test eax, eax
je 0x4014fc
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x24]
push eax
push 0x32
push dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
call dword [sym.imp.MSACM32.dll_acmMetrics]
push 0x12
pop eax
cmp dword [esp + 0x24], eax
jae 0x40151e
mov dword [esp + 0x24], eax
push dword [esp + 0x24]
call fcn.004042e0
pop ecx
push dword [esp + 0x24]
mov edi, eax
push ebx
push edi
call fcn.0040a160
mov eax, dword [esp + 0x30]
add esp, 0xc
add eax, 0xffffffee
push 0x98
mov word [edi + 0x10], ax
lea eax, [esp + 0x844]
push ebx
push eax
mov word [edi], si
call fcn.0040a160
mov eax, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x854], eax
mov eax, esi
push ebx
mov dword [esp + 0x84c], eax
lea eax, [esp + 0x54]
push eax
push 0x40109c
lea eax, [esp + 0x84c]
push eax
push dword [esp + 0x24]
mov dword [esp + 0x854], 0x98
mov dword [esp + 0x864], edi
mov dword [esp + 0x64], ebx
mov word [esp + 0x68], si
call dword [sym.imp.MSACM32.dll_acmFormatEnumA]
push ebx
push dword [esp + 0x18]
mov esi, eax
call dword [sym.imp.MSACM32.dll_acmDriverClose]
cmp dword [esp + 0x50], ebx
je 0x4015bf
cmp esi, ebx
je 0x4015c6
push edi
call fcn.00404290
pop ecx
push 0x50
lea eax, [esp + 0x6ec]
push eax
push dword [esp + 0x30]
push 0xfffffffffffffffa
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_GetWindowLongA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jne 0x401604
push dword [esp + 0x28]
lea eax, [esp + 0x6ec]
push str.error:__d
push eax
call fcn.00403800
add esp, 0xc
mov eax, dword [esp + 0x10]
sub eax, 0x110
mov esi, dword [0x4438c8]
je 0x40165d
dec eax
jne 0x4016c8
cmp word [esp + 0x28], 0x28
jne 0x4016c8
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
push str.Monitor
push dword [esp + 0x24]
push esi
call edi
lea eax, [esp + 0x5a8]
push eax
push dword [esp + 0x24]
push esi
call edi
push 1
push 1
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x4016c8
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, dword [sym.imp.GDI32.dll_CreatePen]
push eax
push 3
push ebx
call edi
push 0xff
push 3
push ebx
call edi
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [esp + 0xad8]
push eax
push dword [esp + 0x24]
push esi
call edi
lea eax, [esp + 0x5a8]
push eax
push dword [esp + 0x24]
push esi
call edi
mov edi, dword [sym.imp.USER32.dll_SetDlgItemInt]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x28]
push esi
call edi
push ebx
push dword [esp + 0x24]
push dword [esp + 0x28]
push esi
call edi
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
push eax
push ebx
mov dword [esp + 0x4fc], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp dword [esp + 0x10], 0x1a
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, dword [sym.imp.USER32.dll_DialogBoxParamA]
ja 0x4017fc
mov eax, dword [esp + 0x10]
cmp eax, 0x1a
je 0x4017bf
dec eax
je 0x401759
dec eax
je 0x40174c
sub eax, 3
je 0x401970
sub eax, 0xa
jne 0x401970
lea eax, [esp + 0x6e8]
push eax
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
push 8
push dword [esp + 0x6ec]
push 0x318
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x6e8]
push eax
push ebx
jmp 0x4037b1
push 1
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x401970
push 0x200
lea eax, [esp + 0x6ec]
push eax
push 1
push esi
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x6e8]
push eax
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 2
push ebx
push ebx
push 0x50000000
call dword [sym.imp.COMCTL32.dll_CreateStatusWindowA]
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call dword [sym.imp.SHLWAPI.dll_PathGetArgsA]
push eax
call fcn.00404330
pop ecx
push ebx
push ebx
push 0x464
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x401970
push 0x104
lea eax, [esp + 0x3c]
push eax
push 0x439094
push str.sDecimal
push str.intl
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
push 1
lea eax, [esp + 0x11ec]
push eax
push 1
lea eax, [esp + 0x44]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x4037b7
mov ecx, dword [esp + 0x10]
sub ecx, 0x111
je 0x40188d
dec ecx
dec ecx
je 0x401869
sub ecx, 0x205
je 0x401842
sub ecx, 0xfe
jne 0x401970
cmp dword [esp + 0x2c], ebx
je 0x401970
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x401970
jmp 0x401959
push 0xcc0020
push ebx
push ebx
push ebx
push dword [esp + 0x570]
push dword [esp + 0x570]
push ebx
push ebx
push dword [esp + 0x48]
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x401970
mov eax, dword [esp + 0x28]
dec eax
dec eax
jne 0x401970
push 2
push ebx
call dword [sym.imp.USER32.dll_KillTimer]
push dword [esp + 0x2c]
push ebx
push 0x80
jmp 0x401969
movzx ecx, word [esp + 0x28]
cmp ecx, 9
je 0x401965
cmp ecx, 0x10
je 0x4018e7
cmp ecx, 0x40
je 0x4018d3
cmp ecx, 0x60
jne 0x401970
push dword [esp + 0x2c]
push 0x40109c
push ebx
push ecx
push esi
call eax
cmp eax, 1
jne 0x401970
mov eax, dword [0x4438b4]
mov dword [esp + 0x28], eax
jmp 0x401970
push dword [esp + 0x28]
push 0x40109c
push ebx
push 0x40
push esi
call eax
jmp 0x401970
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, dword [sym.imp.USER32.dll_SetCursor]
push eax
call esi
mov dword [esp + 0x1c], eax
call edi
cmp dword [esp + 0x20], 4
mov dword [esp + 0x504], eax
je 0x40191e
mov esi, dword [sym.imp.USER32.dll_MessageBeep]
push ebx
call esi
push ebx
call esi
jmp 0x401970
call edi
push dword [esp + 0x1c]
mov edi, eax
sub edi, dword [esp + 0x508]
call esi
push edi
push str._u_ms
lea eax, [esp + 0x6f0]
push 0x80
push eax
call fcn.00404350
add esp, 0x10
lea eax, [esp + 0x6e8]
push eax
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 1
push ebx
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x401970
push ebx
push ebx
push 0x10
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [esp + 0x2c]
push dword [esp + 0x4f8]
push dword [esp + 0x18]
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov esi, dword [esp + 0x550]
cmp dword [esp + 0x54c], ebx
jne 0x4019a0
cmp dword [esp + 0x28], esi
jl 0x4019a0
push 4
jmp 0x4019a2
push 3
push ebx
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
movzx eax, word [esp + 0x96]
push 0xcc0020
push eax
push eax
push ebx
push ebx
push dword [esp + 0x34]
push esi
push dword [esp + 0x568]
push ebx
push dword [esp + 0x568]
push ebx
call dword [sym.imp.GDI32.dll_StretchBlt]
lea eax, [esp + 0x4f4]
push eax
push ebx
mov dword [esp + 0x4fc], ebx
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x53c]
sub eax, dword [esp + 0x534]
lea esi, [esp + 0x50]
push eax
mov eax, dword [esp + 0x53c]
sub eax, dword [esp + 0x534]
push eax
push dword [esp + 0x53c]
xor eax, eax
push dword [esp + 0x53c]
call fcn.00401026
push dword [esp + 0x50]
call dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push dword [esp + 0x28]
mov esi, eax
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [esp + 0x4f4], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov edi, dword [sym.imp.USER32.dll_LoadImageA]
push ebx
push 0x10
push 0x10
push 1
push 1
push esi
call edi
push ebx
push 0x10
push 0x10
push 1
push 2
push esi
mov dword [esp + 0x700], eax
call edi
xor edi, edi
inc edi
push edi
push esi
mov dword [esp + 0x90], 0x30
mov dword [esp + 0x94], 0x200b
mov dword [esp + 0x98], 0x40109c
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], esi
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [esp + 0xa8], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x738]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x6e8]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebx
push esi
push ebx
push ebx
push dword [esp + 0x3c]
lea eax, [esp + 0x954]
push dword [esp + 0x3c]
push ebx
push SysReAllocStringLen
push 0xcf0000
push ebx
push eax
push 0x300
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp dword [esp + 0x10], ebx
je 0x401b54
push 0xa
push dword [esp + 0x4f8]
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
mov edi, eax
cmp dword [esp + 0x10], ebx
je 0x401bb4
jmp 0x401ba3
lea eax, [esp + 0x514]
push eax
push edi
push dword [esp + 0x4fc]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x401ba3
lea eax, [esp + 0x514]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x514]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
push ebx
lea eax, [esp + 0x520]
push eax
call esi
test eax, eax
jne 0x401b6d
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_DdeUninitialize]
push dword [esp + 0x44]
call dword [sym.imp.USER32.dll_SetMessageQueue]
mov esi, eax
cmp esi, dword [0x4438c4]
jge 0x401bd6
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [esp + eax + 0x940], ecx
push dword [0x4438b4]
mov eax, dword [0x4438b8]
push eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
dec esi
push eax
push dword [esp + 0x38]
mov dword [esp + 0x34], esi
push ebx
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x401c1c
mov esi, eax
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x18], ecx
jle 0x401c33
movzx edx, byte [esp + 0x48]
mov edi, dword [esp + 0x2c]
sub edi, edx
add ecx, edi
mov dword [0x4438b4], eax
cmp esi, ebx
je 0x401c3e
mov dword [eax], ecx
mov dword [0x4438c8], esi
cmp esi, eax
je 0x401c4d
mov dword [0x4438c8], eax
push dword [0x4438c8]
mov dword [esp + 0x40], ebx
xor esi, esi
mov dword [esp + 0x18], ebx
call dword [sym.imp.USER32.dll_GetMenu]
mov dword [esp + 0x4f4], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + eax + 0x10]
push 0xf
mov dword [esp + 0x2c], eax
mov eax, dword [0x4438c8]
pop ecx
mov edx, eax
imul edx, dword [esp + 0x2c]
dec ecx
mov dword [esp + 0x2c], edx
jne 0x401c7e
mov edi, dword [sym.imp.USER32.dll_GetMenuItemInfoA]
cmp edx, ebx
jne 0x401cb0
mov edx, dword [0x4438b4]
imul edx, dword [esp + 0x10]
add edx, 0x1000
mov dword [esp + 0x14], edx
jmp 0x401d65
jge 0x401dc5
lea eax, [esp + 0x58]
push eax
push ebx
push dword [0x4438b4]
mov dword [esp + 0x68], 4
push dword [esp + 0x500]
call edi
mov eax, dword [0x4438c8]
add eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0xa0]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x58]
push eax
push ebx
push dword [0x4438b8]
mov dword [esp + 0x68], 8
push dword [esp + 0x78]
call edi
push dword [esp + 0x70]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x74]
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0x58]
push eax
push ebx
push dword [esp + 0x30]
mov dword [esp + 0x48], 0xfffffc00
push dword [esp + 0x500]
mov dword [esp + 0x6c], 4
call edi
mov ecx, dword [esp + 0x10]
mov eax, dword [0x4438c8]
lea edx, [ecx + 0x10]
imul edx, dword [esp + 0x24]
imul edx, edx, 0xb
add edx, eax
imul edx, ecx
sub edx, dword [0x4438c0]
mov dword [0x4438b8], edx
mov edx, dword [esp + 0x14]
cmp edx, 1
jb 0x401dc7
jbe 0x401d9e
mov ecx, dword [esp + 0x10]
mov esi, edx
sub esi, ecx
lea edi, [eax + 1]
imul esi, edi
mov edi, dword [esp + 0x24]
inc edi
imul esi, edi
imul esi, dword [esp + 0x44]
add ecx, dword [esp + 0x28]
imul esi, esi, 0x27
mov dword [0x4438b4], ecx
cmp esi, ebx
je 0x401d9e
mov dword [0x4438b8], ebx
mov edi, dword [0x4438c0]
mov ecx, edx
imul ecx, ecx, 0x101
add ecx, edi
lea edx, [edi + edx*4]
shl edx, 4
add ecx, eax
cmp edx, ebx
jbe 0x401dd3
push ecx
push esi
push edx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
jmp 0x401de2
mov edx, ebx
mov ecx, dword [esp + 0x3c]
mov dword [0x4438b8], ecx
jmp 0x401d9e
push dword [esp + 0x14]
push dword [esp + 0x30]
push ebx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x504], eax
mov eax, dword [0x4438c0]
cmp dword [0x4438c8], eax
je 0x401dfe
mov esi, dword [esp + 0x18]
cmp dword [0x4438c4], eax
jle 0x401e38
xor edi, edi
cmp esi, ebx
jle 0x401e38
cmp eax, ebx
jne 0x401e33
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4037b7
inc dword [esp + 0x28]
cmp dword [0x4438c8], ebx
jne 0x401e38
mov eax, dword [0x4438c0]
inc edi
cmp edi, esi
jl 0x401e0c
cmp dword [esp + 0x38], ebx
je 0x401e4e
cmp dword [0x4438c4], ebx
je 0x401e4e
mov dword [esp + 0x40], 1
mov eax, dword [0x4438b4]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push dword [esp + 0x28]
mov edi, eax
call esi
mov eax, edi
push 2
pop edi
sub eax, edi
je 0x401edb
sub eax, 0x44
jne 0x401f0c
push dword [0x4438b4]
push dword [esp + 0x28]
call esi
mov esi, eax
push 0x80
lea eax, [esp + 0x844]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x10
lea eax, [esp + 0x59c]
push eax
push ebx
lea eax, [esp + 0x84c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [esp + 0x850]
push eax
push dword [esp + 0x508]
call dword [sym.imp.WS2_32.dll_sendto]
push 0x435c0e
push esi
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x401f0c
cmp dword [esp + 0x4f4], 0xffffffff
mov esi, dword [sym.imp.WS2_32.dll_closesocket]
je 0x401ef4
push dword [esp + 0x4f4]
call esi
cmp dword [esp + 0x20], 0xffffffff
je 0x401f01
push dword [esp + 0x20]
call esi
push ebx
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_EndDialog]
push 0x5c
pop eax
mov word [esp + 0xb8], ax
lea eax, [esp + 0xb8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401f21
sub eax, edx
mov byte [esp + eax + 0xb8], bl
xor eax, eax
mov cl, byte [esp + eax + 0x738]
mov byte [esp + eax + 0xad8], cl
inc eax
cmp cl, bl
jne 0x401f33
lea eax, [esp + 0xad8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401f50
sub eax, edx
mov byte [esp + eax + 0xad8], bl
lea eax, [esp + 0xad8]
mov dword [esp + 0x578], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x57c], eax
mov eax, 0x210
mov dword [esp + 0x570], ebx
mov dword [esp + 0x574], edi
mov word [esp + 0x580], ax
cmp dword [esp + 0x24], ebx
je 0x401fab
lea eax, [esp + 0x570]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
mov eax, dword [esp + 0x34]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
mov edi, 0x1004
push edi
push dword [esp + 0x24]
mov dword [esp + 0x504], eax
mov dword [esp + 0x24], ebx
call esi
test eax, eax
je 0x402037
push 0x3c
lea eax, [esp + 0x6ec]
push ebx
push eax
call fcn.0040a160
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x6ec], eax
lea eax, [esp + 0x6e8]
push eax
push ebx
push 0x1005
push dword [esp + 0x24]
mov dword [esp + 0x6f8], 8
mov dword [esp + 0x708], 2
call esi
test byte [esp + 0x6f4], 2
jne 0x402037
inc dword [esp + 0x14]
push ebx
push ebx
push edi
push dword [esp + 0x24]
call esi
cmp dword [esp + 0x14], eax
jb 0x401fd2
push ebx
push ebx
push 0x1032
push dword [esp + 0x24]
call esi
cmp eax, 1
jne 0x40204f
cmp dword [esp + 0x20], ebx
jne 0x402053
mov dword [esp + 0x28], ebx
push dword [esp + 0x20]
push ebx
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
cmp esi, ebx
jne 0x4020ad
push 0x100
lea eax, [esp + 0x5ac]
push eax
push dword [0x4438b4]
push dword [esp + 0x500]
call dword [sym.imp.USER32.dll_LoadStringA]
cmp dword [0x4438c8], ebx
je 0x4020ad
push 0x10
lea eax, [esp + 0x5ac]
push eax
lea eax, [esp + 0xae0]
push eax
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_MessageBoxA]
movzx eax, word [0x4438b4]
push ebx
push 0x40109c
push dword [esp + 0x28]
push eax
push dword [esp + 0x504]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp esi, ebx
je 0x4020d7
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push dword [esp + 0x38]
mov esi, dword [0x4438b4]
push ebx
push ebx
push ebx
mov eax, SysReAllocStringLen
push eax
push ebx
push eax
push 0xcf0000
lea eax, [esp + 0x75c]
push eax
push eax
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
push 1
push edi
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
push esi
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
push ebx
push ebx
push 0x40109c
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
cmp dword [0x4438c8], ebx
je 0x40214a
push str.Title
push ebx
call dword [sym.imp.USER32.dll_FindWindowA]
mov esi, eax
cmp esi, ebx
je 0x402136
jmp 0x40214e
mov esi, dword [esp + 0x20]
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
and eax, 0xfff7ffff
push eax
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x34]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov esi, 0x100
push esi
lea ecx, [esp + 0x844]
push ecx
push dword [esp + 0x30]
mov dword [esp + 0x500], eax
push eax
call edi
push esi
lea eax, [esp + 0xadc]
push eax
push dword [esp + 0x34]
push dword [esp + 0x500]
call edi
xor ecx, ecx
inc ecx
mov edi, 0x435c0e
lea esi, [esp + 0x738]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4021f2
lea eax, [esp + 0x738]
mov edx, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4021c9
lea edi, [esp + 0x5a8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x4021da
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x738]
push eax
push dword [esp + 0x4f8]
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov edi, eax
cmp dword [esp + 0x10], ebx
je 0x40225e
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x40224d
lea eax, [esp + 0x554]
push eax
push edi
push dword [esp + 0x55c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x40224d
lea eax, [esp + 0x554]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x554]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
push ebx
lea eax, [esp + 0x560]
push eax
call esi
test eax, eax
jne 0x402217
mov edx, dword [esp + 0x34]
mov eax, dword [0x4438b8]
mov esi, dword [0x4438c8]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
dec edx
mov dword [esp + 0x14], eax
mov eax, dword [0x4438b4]
mov edi, str.Menu_example
mov ecx, str.System_menu
mov dword [esp + 0x514], 0x4390bc
mov dword [esp + 0x518], 0x4390d4
mov dword [esp + 0x51c], 0x4390ec
mov dword [esp + 0x520], 0x439100
mov dword [esp + 0x524], 0x439110
mov dword [esp + 0x528], edi
mov dword [esp + 0x52c], ecx
mov dword [esp + 0x18], eax
je 0x4023ea
dec edx
je 0x4023d2
sub edx, 3
je 0x4023aa
sub edx, 0x10c
je 0x402365
sub edx, 0xe
jne 0x40242b
mov esi, dword [esp + 0x14]
shr esi, 0x10
movzx edx, si
sub edx, eax
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp dword [esp + 0x18], ebx
mov dword [esp + 0x4f4], esi
sete al
test eax, edx
je 0x402334
push edi
push ebx
push 0x401
push dword [esp + 0x54]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4037b7
test dword [esp + 0x4f4], 0x2000
je 0x402344
push ecx
jmp 0x40231f
test byte [esp + 0x4f4], 0x10
movzx eax, word [esp + 0x14]
je 0x40235c
push dword [esp + eax*4 + 0x520]
jmp 0x40231f
push dword [esp + eax*4 + 0x514]
jmp 0x40231f
mov eax, dword [esp + 0x14]
sub eax, ebx
je 0x40237d
dec eax
jne 0x4023aa
push ebx
push ebx
push 0x10
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4023aa
push ebx
push 1
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_EnableMenuItem]
xor eax, eax
cmp dword [0x4438d0], ebx
sete al
mov dword [0x4438d0], eax
xor eax, eax
cmp dword [0x4438d4], ebx
sete al
mov dword [0x4438d4], eax
push dword [esp + 0x18]
push dword [esp + 0x18]
push 5
push dword [esp + 0x54]
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x598]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
jmp 0x4037b7
push dword [0x4438d8]
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x4037b7
push 0xf
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x10
push eax
add eax, eax
push eax
push ebx
push str.1.bmp
push dword [esp + 0x30]
call dword [sym.imp.USER32.dll_LoadImageA]
mov dword [0x4438d8], eax
lea eax, [esp + 0x738]
push eax
push dword [0x4438b4]
push 4
push esi
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_AppendMenuA]
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x18]
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov esi, dword [sym.imp.ole32.dll_CoFreeUnusedLibraries]
cmp dword [0x4438c4], ebx
jne 0x4025fb
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x1c]
push eax
push 0x42e410
push 1
push ebx
push 0x42e420
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x402481
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
push 3
pop eax
lea edx, [esp + 0x14]
push edx
mov word [esp + 0x534], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
sub esp, 0x10
mov dword [esp + 0x54c], 2
mov edi, esp
lea esi, [esp + 0x544]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x24]
test eax, eax
jns 0x4024c8
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push 0x42e400
push eax
call dword [ecx]
test eax, eax
jns 0x4024ed
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push eax
call dword [ecx + 0x44]
test eax, eax
jns 0x40250e
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
call dword [ecx + 0x24]
push dword [esp + 0x18]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [ecx + 0x58]
test eax, eax
jns 0x402548
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
push 3
pop eax
lea edx, [esp + 0x4f4]
push edx
mov word [esp + 0x534], ax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
sub esp, 0x10
mov dword [esp + 0x54c], ebx
mov edi, esp
lea esi, [esp + 0x544]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x28]
test eax, eax
jns 0x40258e
lea eax, [esp + 0x738]
push eax
call fcn.00405390
pop ecx
mov eax, dword [esp + 0x4f4]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
call dword [ecx + 0x24]
push dword [esp + 0x18]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x4f4]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoFreeUnusedLibraries]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov esi, dword [sym.imp.ole32.dll_CoFreeUnusedLibraries]
mov eax, dword [0x4438c0]
cmp eax, dword [0x4438cc]
jne 0x402624
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x24]
push ebx
push dword [esp + 0x2c]
call dword [sym.imp.SHELL32.dll_SHCreateShellItem]
test eax, eax
js 0x402624
mov dword [esp + 0x28], ebx
cmp dword [0x4438c8], ebx
je 0x402714
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x14]
push eax
push 0x42e440
push 1
push ebx
push 0x42e460
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0xadc]
push edx
push eax
call dword [ecx + 0x14]
push 0x208
call fcn.004037d0
pop ecx
mov edi, 0x104
push edi
lea ecx, [esp + 0xadc]
push ecx
push eax
mov dword [esp + 0x28], eax
call fcn.00403e90
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
add esp, 0xc
push ebx
push dword [esp + 0x20]
push eax
call dword [ecx + 0x14]
push dword [esp + 0x1c]
call fcn.00404750
mov eax, dword [esp + 0x18]
pop ecx
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push 0x435c10
push eax
call dword [ecx]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push 3
push ebx
push eax
call dword [ecx + 0x4c]
push edi
call fcn.004037d0
pop ecx
push ebx
lea edx, [esp + 0x5ac]
push edx
push edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
push dword [esp + 0x24]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
push dword [esp + 0x18]
call fcn.00405390
pop ecx
push dword [esp + 0x18]
call fcn.00404750
mov eax, dword [esp + 0x34]
pop ecx
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 0x18]
push eax
push 0x42e450
push 1
push ebx
lea eax, [esp + 0x5a8]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4027ea
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
lea edx, [esp + 0x548]
push edx
push eax
call dword [ecx]
test eax, eax
js 0x4027de
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push 0x42e430
push eax
call dword [ecx]
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x4027a4
mov ecx, dword [eax]
lea edx, [esp + 0x554]
push edx
push eax
call dword [ecx + 0xc]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x558]
push eax
call dword [sym.imp.ole32.dll_StringFromCLSID]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call esi
lea eax, [esp + 0x4f4]
push eax
push 1
call dword [sym.imp.ole32.dll_CoGetMalloc]
mov eax, dword [esp + 0x4f4]
push dword [esp + 0x3c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [esp + 0x4f4]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call esi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
push 0xfffffffffffffff5
mov word [esp + 0x18], ax
mov word [esp + 0x1a], ax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
lea ecx, [esp + 0x514]
push ecx
push eax
mov dword [esp + 0x38], eax
call esi
movsx eax, word [esp + 0x514]
movsx edi, word [esp + 0x516]
imul edi, eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
push edi
push 0x20
push dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
lea eax, [esp + 0x514]
push eax
push dword [esp + 0x34]
call esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
push edi
push dword [esp + 0x528]
push dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
push dword [esp + 0x14]
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push 0x400
lea eax, [esp + 0xadc]
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleTitleA]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0xc0]
push str._d__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
add esp, 0x10
lea eax, [esp + 0xb8]
push eax
call esi
push 0x28
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.USER32.dll_FindWindowA]
lea eax, [esp + 0xb8]
push eax
push ebx
call edi
lea eax, [esp + 0xad8]
push eax
call esi
mov ecx, dword [0x4438b8]
mov eax, dword [0x4438b4]
push 0x40
push dword [esp + 0x2c]
push dword [esp + 0x18]
push ecx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [0x4438c8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
sub eax, 0x10
je 0x402b12
sub eax, 0x100
je 0x4029f6
dec eax
jne 0x402b1d
movzx eax, word [esp + 0x28]
dec eax
jne 0x402b1d
mov esi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0x6b
lea eax, [esp + 0x6ec]
pop edi
mov dword [esp + 0x18], eax
lea ebx, [esp + 0x840]
mov dword [esp + 0x1c], 5
push ebx
push 0x19
push 0xd
lea eax, [edi - 5]
push eax
push dword [esp + 0x24]
call esi
push dword [esp + 0x18]
push 0xa
push 0xd
push edi
push dword [esp + 0x24]
call esi
add dword [esp + 0x18], 0xa
add ebx, 0x19
inc edi
dec dword [esp + 0x1c]
jne 0x402963
push 0x439154
push str.tetris.dat
call fcn.00404730
pop ecx
pop ecx
mov ebx, eax
lea edi, [esp + 0x6e8]
lea esi, [esp + 0x840]
mov dword [esp + 0x1c], 5
push ebx
push 0x19
push 1
push esi
call fcn.00404eb0
push ebx
push 0xa
push 1
push edi
call fcn.00404eb0
add esp, 0x20
add esi, 0x19
add edi, 0xa
dec dword [esp + 0x1c]
jne 0x4029b9
push ebx
call fcn.004056f0
pop ecx
push 1
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_EndDialog]
jmp 0x402b0a
push 0x43914c
push 0x439150
call fcn.00404730
pop ecx
pop ecx
mov dword [esp + 0x30], eax
cmp eax, ebx
je 0x402b1d
lea eax, [esp + 0x840]
xor edi, edi
lea esi, [esp + 0x6e8]
mov dword [esp + 0x18], eax
push dword [esp + 0x30]
push 0x19
push 1
push dword [esp + 0x24]
call fcn.00404e80
push dword [esp + 0x40]
push 0xa
push 1
push esi
call fcn.00404e80
push esi
call fcn.00404330
add dword [esp + 0x3c], 0x19
add esp, 0x24
mov dword [esp + edi*4 + 0x514], eax
inc edi
add esi, 0xa
cmp edi, 5
jl 0x402a27
push dword [esp + 0x30]
call fcn.004056f0
mov esi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
pop ecx
xor edi, edi
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + edi*4 + 0x514]
jle 0x402ab3
mov ecx, edi
imul ecx, ecx, 0xa
push 0xa
lea ecx, [esp + ecx + 0x6ec]
push ecx
push eax
call fcn.00421c70
add esp, 0xc
push ebx
push ebx
push 0xcf
add edi, 0x66
push edi
push dword [esp + 0x24]
call esi
push 5
pop edi
mov dword [esp + 0x1c], ebx
inc edi
cmp edi, 5
jl 0x402a76
lea eax, [esp + 0x6e8]
mov dword [esp + 0x30], eax
push 0x6b
lea eax, [esp + 0x844]
pop edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 5
push dword [esp + 0x18]
lea eax, [edi - 5]
push ebx
push 0xc
push eax
push dword [esp + 0x24]
call esi
push dword [esp + 0x30]
push ebx
push 0xc
push edi
push dword [esp + 0x24]
call esi
add dword [esp + 0x18], 0x19
add dword [esp + 0x30], 0xa
inc edi
dec dword [esp + 0x1c]
jne 0x402ada
xor eax, eax
inc eax
jmp 0x4037b9
push ebx
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_EndDialog]
cmp dword [0x4438c8], ebx
je 0x402c03
push 1
push ebx
push ebx
lea eax, [esp + 0x744]
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esp + 0x4f4], eax
mov esi, str.Error
cmp eax, ebx
je 0x402bc8
push str.SetLayeredWindowAttributes
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402bb8
push ebx
push str.Notepad
call edi
lea ecx, [esp + 0x940]
push ecx
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp dword [esp + 0x1c], ebx
je 0x402b6c
push 0x80000
push 0xffffffffffffffec
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_SetWindowLongA]
test eax, eax
je 0x402ba8
mov dword [esp + 0x28], ebx
jmp 0x402bdd
cmp dword [esp + 0x10], ebx
je 0x402bdd
push 0x10
push esi
push str.Error_SetWindowLong
jmp 0x402bd6
cmp dword [esp + 0x10], ebx
je 0x402bdd
push 0x10
push esi
push str.Error_GetProcAddress
jmp 0x402bd6
cmp dword [esp + 0x10], ebx
je 0x402bdd
push 0x10
push esi
push str.Error_load_user32.dll
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [esp + 0x4f4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
jne 0x402c03
cmp dword [esp + 0x24], ebx
je 0x402c03
push 0x10
push esi
push str.Error_FreeLibrary
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x738], eax
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x558]
push eax
push dword [0x4438c8]
mov dword [esp + 0x50], ebx
call dword [sym.imp.WINTRUST.dll_WinVerifyTrust]
movzx edx, ax
cmp edx, ebx
je 0x402c3f
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x44], edi
mov esi, dword [0x4438c4]
lea ecx, [edx + 7]
mov eax, esi
sar eax, cl
xor edi, edi
inc edi
lea ecx, [eax*4 + 3]
mov dword [esp + 0x18], ecx
cmp esi, ebx
je 0x402c62
lea edi, [eax + eax + 2]
cmp dword [esp + 0x10], ebx
jne 0x402c91
inc eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
fadd st(0), st(0)
fild dword [esp + 0x1c]
jns 0x402c84
fadd qword [0x439278]
call fcn.00425d30
call fcn.00425c40
imul edi, eax
cmp dword [esp + 0x24], ebx
jne 0x402ca0
imul edi, dword [esp + 0x18]
mov dword [esp + 0x18], edi
cmp esi, ebx
je 0x402cb8
push dword [esp + 0x18]
push ebx
push dword [esp + 0x50c]
call dword [esp + 0x50]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
push ebx
push 0xffffffffffffffff
mov dword [esp + 0x5b4], eax
lea eax, [esp + 0x5b4]
push eax
push ebx
mov edi, 0xfde9
push edi
call esi
mov dword [esp + 0x504], eax
cmp eax, ebx
jne 0x402cf3
mov al, byte [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
mov eax, dword [esp + 0x504]
dec eax
push eax
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
push dword [esp + 0x504]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x5b4]
push eax
push ebx
push edi
call esi
cmp dword [esp + 0x10], ebx
jne 0x402d33
cmp dword [esp + 0x24], ebx
jne 0x402d33
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x38], eax
jge 0x402df4
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
lea ecx, [esp + 0x504]
push ecx
push eax
mov dword [esp + 0x20], eax
call dword [sym.imp.OLEAUT32.dll_VarParseNumFromStr]
cmp eax, ebx
jl 0x4037b9
mov eax, dword [esp + 0x504]
mov ecx, dword [eax]
lea edx, [esp + 0x530]
push edx
push eax
call dword [ecx + 0x18]
lea eax, [esp + 0x544]
push eax
lea eax, [esp + 0xedc]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push 4
pop ecx
lea edi, [esp + 0x544]
lea esi, [esp + 0x530]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x402da0
mov eax, 0x80070057
jmp 0x4037b9
push dword [esp + 0x18]
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
test eax, eax
js 0x402df4
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x20]
mov dword [esp + 0x28], 1
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
cmp eax, ebx
jl 0x4037b9
push dword [esp + 0x24]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x4391fc
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push dword [esp + 0x18]
call dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
push ebx
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x514]
push eax
push 0x18
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x518]
xor ecx, ecx
inc ecx
mov word [esp + 0xc4], cx
mov ecx, dword [esp + 0x526]
imul ecx, dword [esp + 0x524]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x51c]
mov dword [esp + 0xb8], 0xe
mov dword [esp + 0xc0], eax
mov word [esp + 0xc6], cx
cmp cx, 0x10
je 0x402e6f
mov dword [esp + 0xc8], ebx
cmp cx, 0x20
jne 0x402e7a
mov dword [esp + 0xc8], 3
push ebx
cdq
lea ecx, [esp + 0xbc]
push ecx
push ebx
xor eax, edx
sub eax, edx
push eax
push ebx
push dword [esp + 0x24]
mov dword [esp + 0xf4], ebx
push dword [esp + 0x2c]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xe8], ebx
call dword [sym.imp.GDI32.dll_GetDIBits]
cmp dword [esp + 0xc8], 3
jne 0x402ecb
push 0xc
pop edx
jmp 0x402ecd
xor edx, edx
mov eax, dword [esp + 0xd8]
cmp eax, ebx
jne 0x402eef
xor eax, eax
cmp word [esp + 0xc6], 8
ja 0x402eef
mov cl, byte [esp + 0xc6]
inc eax
shl eax, cl
lea eax, [edx + eax*4 + 0xe]
mov dword [esp + 0x504], eax
add eax, dword [esp + 0xcc]
push eax
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [esp + 0x548], eax
cmp eax, ebx
je 0x402fc8
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 8
push dword [esp + 0x18]
call edi
push 4
push dword [esp + 0x18]
mov esi, eax
imul esi, esi, 0x3e8
call edi
mov ecx, eax
xor edx, edx
mov eax, esi
div ecx
push 0xa
push dword [esp + 0x18]
mov dword [esp + 0xd8], eax
call edi
push 6
push dword [esp + 0x18]
mov esi, eax
imul esi, esi, 0x3e8
call edi
mov ecx, eax
mov eax, esi
xor edx, edx
div ecx
mov edi, dword [esp + 0x504]
mov esi, dword [esp + 0x548]
push edi
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xbc]
push eax
push esi
call fcn.004100c0
add esp, 0xc
push ebx
push esi
lea eax, [esi + edi]
push eax
mov eax, dword [esp + 0xcc]
cdq
xor eax, edx
sub eax, edx
push eax
push ebx
push dword [esp + 0x24]
push dword [esp + 0x2c]
call dword [sym.imp.GDI32.dll_GetDIBits]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalHandle]
push dword [esp + 0x14]
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x24]
push 0xfffffffffffffff4
pop edi
push edi
push eax
mov dword [esp + 0x90], eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x98], 1
cmp dword [esp + 0x10], ebx
je 0x403057
lea eax, [esp + 0x88]
push eax
push edi
push 0x4e
push dword [esp + 0x30]
mov dword [esp + 0xa4], 3
call esi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push eax
call edi
test al, 4
jne 0x40305d
test al, 0x40
je 0x40305d
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x94]
mov dword [esp + 0x9c], 4
push 0x4e
push dword [esp + 0x30]
call esi
push eax
call edi
jmp 0x40305d
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x28]
mov dword [esp + 0x9c], 1
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x94]
push 0x4e
push dword [esp + 0x30]
call esi
push eax
call edi
mov dword [esp + 0x4f4], eax
and eax, 4
or al, 8
jne 0x403148
mov ecx, dword [esp + 0x40]
cmp ecx, ebx
jle 0x403119
mov eax, dword [esp + 0x4f4]
and eax, 0x20
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x18], ebx
je 0x4030d3
mov dword [esp + 0x94], 0x10001
jmp 0x4030da
mov dword [esp + 0x504], ebx
test byte [esp + 0x504], 4
jne 0x403113
test byte [esp + 0x504], 0x10
je 0x403113
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x94]
mov dword [esp + 0x9c], 0x10004
push 0x4e
push dword [esp + 0x30]
call esi
push eax
call edi
dec dword [esp + 0x1c]
jne 0x4030c0
test byte [esp + 0x4f4], 0x10
je 0x403148
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x94]
mov dword [esp + 0x9c], 4
push 0x4e
push dword [esp + 0x30]
call esi
push eax
call edi
cmp dword [esp + 0x10], 0xf
je 0x403793
cmp dword [esp + 0x10], 0x14
je 0x4037b7
cmp dword [esp + 0x10], 0x318
je 0x403782
push dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
push dword [esp + 0x2c]
push dword [esp + 0x18]
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
push 0xa
pop ecx
xor eax, eax
lea edi, [esp + 0x570]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x570]
push eax
mov edi, str.float
push edi
push ebx
call dword [sym.imp.USER32.dll_GetClassInfoW]
test eax, eax
je 0x4031e8
push str.user32
mov dword [esp + 0x598], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebx
mov dword [esp + 0x584], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x58c], eax
lea eax, [esp + 0x570]
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
je 0x4031e8
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x530]
push eax
lea eax, [esp + 0x548]
push eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x510], ebx
mov dword [esp + 0x550], 1
mov dword [esp + 0x554], ebx
mov dword [esp + 0x558], ebx
mov dword [esp + 0x55c], ebx
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
mov eax, dword [esp + 0x10]
push 9
mov dword [esp + 0x8c], eax
pop ecx
xor eax, eax
lea edi, [esp + 0x8c]
rep stosd dword es:[edi], eax
push 0x7f00
lea eax, [esp + 0x73c]
push ebx
mov dword [esp + 0xb4], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [esp + 0x10]
add eax, esi
jne 0x403286
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x10]
add eax, esi
jmp 0x40329c
mov eax, dword [esp + 0x10]
inc eax
imul eax, eax, 0x64
sub eax, dword [esp + 0x2c]
add eax, dword [0x4438c8]
add eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x38], ebx
jne 0x4032bc
mov eax, dword [0x4438b4]
imul eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x504], eax
mov ecx, dword [esp + 0x3c]
add ecx, dword [esp + 0x20]
mov edi, dword [sym.imp.USER32.dll_CreateMenu]
imul ecx, dword [0x4438b8]
add ecx, dword [esp + 0x10]
add dword [esp + 0x2c], ecx
call edi
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x4032f1
mov eax, dword [esp + 0x28]
add eax, esi
add dword [0x4438b8], eax
jmp 0x4032f7
dec dword [0x4438b8]
call edi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
add ecx, 4
cmp ecx, eax
jne 0x40331c
push dword [0x4438b4]
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0xa
pop ecx
push ebx
xor eax, eax
mov dword [esp + 0x6ec], 0x30
mov dword [esp + 0x6f0], 0x14
lea edi, [esp + 0x6f4]
push esi
rep stosd dword es:[edi], eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
lea ecx, [esp + 0x6e8]
push ecx
push ebx
push dword [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
push dword [esp + 0x70c]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.USER32.dll_GetMenu]
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x18], ebx
je 0x40338a
add edi, 5
imul edi, edi, 3
sub edi, dword [esp + 0x10]
add edi, dword [esp + 0x40]
jmp 0x4033a1
mov eax, dword [esp + 0x40]
imul edi, edi, 3
add eax, 0xa
imul eax, eax, 0x28
sub edi, eax
sub edi, esi
add edi, dword [0x4438c0]
mov esi, dword [sym.imp.USER32.dll_InsertMenuA]
push str.CONFIG
push dword [esp + 0x2c]
mov dword [esp + 0x4fc], edi
push ebx
push ebx
push dword [esp + 0x30]
call esi
push str.FILE
push dword [esp + 0x24]
push 0x10
push ebx
push dword [esp + 0x28]
call esi
mov eax, dword [esp + 0x40]
add eax, 5
cmp dword [esp + 0x24], eax
jge 0x4033fa
mov ecx, dword [0x4438b4]
add ecx, dword [esp + 0x38]
sub eax, dword [esp + 0x24]
imul ecx, ecx, 3
add ecx, dword [esp + 0x10]
imul ecx, eax
add dword [esp + 0x28], ecx
movzx eax, byte [esp + 0x10]
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push dword [esp + 0x24]
mov dword [esp + 0x20], eax
call dword [sym.imp.USER32.dll_GetDC]
push edi
push 0x424648
push dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
call fcn.004100c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x4438c0]
mov edx, dword [esp + 0x510]
lea esi, [eax + ecx + 1]
imul esi, dword [0x4438c4]
mov ecx, dword [0x4438b4]
sub edx, ecx
add esp, 0xc
cmp edx, esi
jne 0x403463
add dword [0x4438b8], ecx
mov edx, dword [esp + 0x40]
imul eax, edx
cmp eax, 1
je 0x403570
add edx, 0x26
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], ebx
cmp dword [esp + 0x4f4], ebx
jle 0x403570
mov eax, edx
neg eax
mov dword [esp + 0x3c], eax
push 1
push 0x100
lea eax, [esp + 0x5b0]
push eax
lea eax, [esp + 0x510]
push eax
call dword [sym.imp.ADVAPI32.dll_GetAclInformation]
mov esi, dword [esp + 0x40]
push dword [0x4438c8]
lea edi, [esp + eax + 0x3d]
mov eax, dword [esp + 0x18]
push dword [0x4438c0]
add esi, eax
mov al, byte [esi]
mov byte [esp + 0x57], al
call dword [sym.imp.GDI32.dll_SelectObject]
mov al, byte [esp + 0x18]
add al, al
inc al
imul byte [esp + 0x30]
mov cl, al
mov eax, dword [0x4438c0]
xor cl, byte [esp + 0x4f]
push ebx
push eax
mov byte [esp + eax + 0x40], cl
call dword [sym.imp.USER32.dll_GetMenuItemID]
mov al, byte [esp + 0x14]
mov byte [edi], al
mov eax, dword [0x4438c0]
cmp dword [0x4438c4], ebx
je 0x403527
cmp dword [esp + 0x30], ebx
je 0x403522
mov ecx, dword [0x4438c8]
mov cl, byte [esp + ecx + 0x38]
jmp 0x403525
mov cl, byte [edi + eax]
mov byte [esi], cl
push eax
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_DrawIcon]
cmp dword [0x4438c4], ebx
je 0x403551
mov ecx, dword [esp + 0x3c]
add ecx, dword [0x4438c8]
imul ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
inc dword [esp + 0x3c]
cmp eax, dword [esp + 0x4f4]
jl 0x403497
mov ecx, dword [0x4438b4]
cmp dword [esp + 0x10], ecx
jne 0x40357a
inc dword [esp + 0x28]
push dword [esp + 0x1c]
lea eax, [esp + 0x518]
push eax
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_FillRect]
push dword [esp + 0x20]
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [esp + 0x34]
cmp dword [esp + 0x24], ebx
jne 0x4035b1
mov ecx, dword [esp + 0x14]
mov dword [ecx + 1], eax
jmp 0x4035c2
mov ecx, dword [esp + 0x48]
add ecx, dword [0x4438c0]
mov dword [esp + ecx + 0x91a], eax
push dword [esp + 0x1c]
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esp + 0x10], ebx
je 0x4035f9
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x4035e8
lea eax, [esp + 0x570]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
push ebx
lea eax, [esp + 0x57c]
push eax
call esi
test eax, eax
jne 0x4035da
push 0x10
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
cmp esi, ebx
je 0x403628
lea eax, [esi + 4]
push eax
mov dword [eax], ebx
lea eax, [esp + 0xedc]
push eax
mov dword [esi], vtable.Gdiplus::Image.0
call dword [sym.imp.gdiplus.dll_GdipLoadImageFromFile]
mov dword [esi + 8], eax
mov ecx, esi
jmp 0x40362a
xor ecx, ecx
mov eax, dword [0x4438b8]
mov esi, dword [0x4438c8]
mov edi, dword [0x4438b4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
dec eax
dec eax
je 0x403659
sub eax, 0xd
jne 0x403663
push ebx
push esi
call dword [sym.imp.USER32.dll_ValidateRect]
jmp 0x4037b7
cmp ecx, ebx
je 0x403663
mov eax, dword [ecx]
push 1
call dword [eax]
push dword [esp + 0x20]
push edi
push dword [esp + 0x18]
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
push ebx
lea eax, [esp + 0x4f8]
push eax
push 1
push str.D:_A__0x1___BA_
mov dword [esp + 0x504], ebx
call dword [sym.imp.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW]
push dword [esp + 0x4f4]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorLength]
cmp dword [esp + 0x50], ebx
je 0x4036a7
xor edi, edi
jmp 0x4036ab
mov edi, dword [esp + 0x28]
cmp dword [0x4438c4], ebx
jne 0x4036c0
push dword [esp + 0x4f4]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [esp + 0x2c]
mov esi, dword [sym.imp.USER32.dll_SetRect]
push edi
push 0xa
push 0xa
lea eax, [esp + 0x514]
push eax
call esi
push dword [esp + 0x2c]
lea eax, [esp + 0x4f8]
push edi
push 0xa
push 0x5a
push eax
call esi
lea eax, [esp + 0x598]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [esp + 0x504]
push eax
lea eax, [esp + 0x4f8]
push eax
lea eax, [esp + 0x5a0]
push eax
call dword [sym.imp.USER32.dll_UnionRect]
test eax, eax
je 0x403722
mov dword [0x4438b4], ebx
cmp dword [esp + 0x34], ebx
jne 0x403775
cmp dword [esp + 0x10], 0x19
jbe 0x403733
mov dword [esp + 0x2c], edi
mov al, byte [esp + 0x10]
add al, 0x61
push 0x442710
mov byte [0x442710], al
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x403757
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x5a8]
push ecx
push 0x40109c
push eax
movzx eax, word [esp + 0x38]
push eax
push dword [esp + 0x44]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push ebx
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_EnumWindowStationsW]
jmp 0x4037b9
lea eax, [esp + 0x514]
push eax
push dword [esp + 0x28]
jmp 0x4023c7
lea eax, [esp + 0x6e8]
push eax
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [esp + 0x6e8]
push eax
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
mov ecx, dword [esp + 0x13f4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004037f0
mov esp, ebp
pop ebp
ret 0x10