Function at 0x401040
Capabilities:
Copy file
Set current directory

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
push 0x472290
push eax
call fcn.00465ff0
add esp, 8
test eax, eax
je 0x40107d
push 0
push 0x472144
push 0x47227c
push 0
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
xor ebx, ebx
push ebx
push 0x472144
call dword [sym.imp.user32.dll_FindWindowA]
test eax, eax
je 0x4010ad
push ebx
push 0x472144
push 0x472264
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
call fcn.00402230
test eax, eax
jne 0x4010d4
push ebx
push 0x472144
push 0x472240
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
push 0x3e8
push 0x47bc90
push ebx
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40110e
push ebx
push 0x472144
push 0x472220
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
mov edi, 0x47bc90
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
dec ecx
js 0x40113a
mov al, 0x5c
cmp byte [ecx + 0x47bc90], al
je 0x40112f
dec ecx
jns 0x401122
jmp 0x40113a
cmp ecx, ebx
mov byte [ecx + 0x47bc90], 0
jge 0x401158
push ebx
push 0x472144
push 0x4721fc
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
push 0x47bc90
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
test eax, eax
push ebx
jne 0x401185
push 0x472144
push 0x4721d8
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
push 0x4721c8
push 0x4721b8
call dword [sym.imp.kernel32.dll_CopyFileA]
push 0x65
mov dword [esp + 0x30], 0x30
mov edi, dword [esp + 0x64]
mov dword [esp + 0x34], 3
push edi
mov dword [esp + 0x3c], 0x401890
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edi
call dword [sym.imp.user32.dll_LoadIconA]
push 0x7f00
push ebx
mov dword [esp + 0x4c], eax
call dword [sym.imp.user32.dll_LoadCursorA]
push 4
mov dword [esp + 0x4c], eax
call dword [sym.imp.gdi32.dll_GetStockObject]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x50], ebx
push ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], 0x472144
mov dword [esp + 0x5c], ebx
call dword [sym.imp.user32.dll_RegisterClassExA]
test ax, ax
jne 0x401224
push ebx
push 0x472144
push 0x47219c
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
mov ecx, dword [0x472110]
push 0x3e8
push 0x3e8
push 0x300
push 0x400
push 1
call fcn.0044a140
test eax, eax
push ebx
jne 0x401267
push 0x472144
push 0x472188
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
push edi
push ebx
push ebx
push 0x300
push 0x400
push ebx
push ebx
push DirectSoundCreate
push 0x472144
push 0x472144
push 0x40000
call dword [sym.imp.user32.dll_CreateWindowExA]
mov esi, eax
cmp esi, ebx
jne 0x4012b4
push ebx
push 0x472144
push 0x47216c
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
mov edx, dword [esp + 0x6c]
push edx
push esi
call dword [sym.imp.user32.dll_ShowWindow]
push esi
call dword [sym.imp.user32.dll_UpdateWindow]
push ebx
push 0x21
push 0x283
push esi
call sub.imm32.dll_ImmGetDefaultIMEWnd
push eax
call dword [sym.imp.user32.dll_SendMessageA]
push ebx
call dword [sym.imp.user32.dll_ShowCursor]
push esi
push edi
call fcn.00401a20
add esp, 8
test eax, eax
jne 0x401314
push ebx
push 0x472144
push 0x472150
push ebx
call dword [sym.imp.user32.dll_MessageBoxA]
call fcn.00401f90
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
call fcn.00401440
test eax, eax
jne 0x40132e
call fcn.00401f90
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x10
mov ebp, dword [sym.imp.user32.dll_PeekMessageA]
mov ebx, dword [sym.imp.user32.dll_TranslateMessage]
push 1
push 0
push 0
lea eax, [esp + 0x1c]
push 0
push eax
call ebp
test eax, eax
je 0x4013fe
cmp dword [esp + 0x14], 0x401
jne 0x401376
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, 0x47c3d8
call fcn.00403b80
mov ecx, 0x60d4e0
call fcn.0040ee60
jmp 0x40133a
sub esp, 0x1c
mov ecx, 7
lea esi, [esp + 0x2c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x60d508
call fcn.0040f090
test eax, eax
jne 0x40140c
mov edx, dword [esp + 0x10]
mov eax, dword [0x47c0a4]
cmp edx, eax
jne 0x4013d6
cmp dword [esp + 0x14], 0x100
jne 0x4013d6
cmp dword [esp + 0x18], 0xd
jne 0x40140c
cmp dword [0x63035c], 3
jne 0x40140c
push 0
mov ecx, 0x62f668
call fcn.00418370
mov ecx, 0x60d4e0
call fcn.0040ee60
jmp 0x40133a
lea eax, [esp + 0x10]
push eax
call ebx
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.user32.dll_DispatchMessageA]
cmp dword [esp + 0x14], 0x12
je 0x40141b
mov ecx, 0x60d4e0
call fcn.0040ee60
jmp 0x40133a
call fcn.004020f0
mov eax, dword [0x47c0a8]
test eax, eax
jne 0x40141b
mov ecx, 0x60d4e0
call fcn.0040ee60
jmp 0x40133a
call fcn.00401f90
push 1
call dword [sym.imp.user32.dll_ShowCursor]
pop edi
pop esi
mov eax, dword [esp + 0x10]
pop ebp
pop ebx
add esp, 0x4c
ret 0x10