Function at 0x402ca1
Capabilities:
Create directory
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov dword [ebp - 0x38], 0x722
mov dword [ebp - 0x24], 0x1486
push 0
call dword [sym.imp.GDI32.dll_FillPath]
and dword [ebp - 0x34], 0
mov dword [ebp - 0xc], 0x12bc
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x402ce0
movzx eax, byte [ebp - 0xd]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x402cec
mov byte [ebp - 0xd], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x402cf8
mov byte [ebp - 0xd], 0
call dword [sym.imp.USER32.dll_GetCapture]
push 0x105
call fcn.004013bb
pop ecx
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov byte [eax], 0
mov byte [ebp - 0x15], 0
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x402d30
movzx eax, byte [ebp - 0x15]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
movzx eax, byte [ebp - 0x15]
test eax, eax
je 0x402d3c
mov byte [ebp - 0x15], 0
movzx eax, byte [ebp - 0x15]
test eax, eax
jne 0x402d48
mov byte [ebp - 0x15], 0
mov word [ebp - 0x14], 0x97
call dword [sym.imp.USER32.dll_GetCapture]
push 0x105
call fcn.004013bb
pop ecx
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov byte [eax], 0
mov word [ebp - 4], 0x19
mov dword [ebp - 0x30], 0xa2a
push 0
push 0
call dword [sym.imp.GDI32.dll_GetBrushOrgEx]
push 0
call dword [sym.imp.KERNEL32.DLL_GetThreadPriority]
mov eax, dword [ebp + 0x18]
push dword [eax]
push dword [0x40601c]
push 0x4011e4
call fcn.00404d6f
pop ecx
push eax
push dword [ebp - 0x20]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov byte [ebp - 0x29], 1
movzx eax, byte [ebp - 0x29]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x29], al
movzx eax, byte [ebp - 0x29]
test eax, eax
jne 0x402dd4
movzx eax, byte [ebp - 0x29]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x29], al
movzx eax, byte [ebp - 0x29]
test eax, eax
je 0x402de0
mov byte [ebp - 0x29], 1
movzx eax, byte [ebp - 0x29]
test eax, eax
jne 0x402dec
mov byte [ebp - 0x29], 1
mov dword [ebp - 0x1c], 0x5c
mov dword [ebp - 0x1c], 0xf0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
call dword [sym.imp.USER32.dll_GetCursor]
push 0
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
test eax, eax
je 0x402e5f
push dword [ebp - 0x20]
push 0x4011f0
call fcn.00404d6f
pop ecx
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov word [ebp - 0x40], 0x4f
mov dword [ebp - 0x44], 0x3c
mov dword [ebp - 0x44], 0x1e
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add eax, 0x54
mov dword [ebp - 0x44], eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetThreadPriority]
jmp 0x402ebc
mov eax, dword [ebp + 0x18]
push dword [eax]
push 0x401208
call fcn.00404d6f
pop ecx
push eax
push dword [0x40601c]
push 0x401214
call fcn.00404d6f
pop ecx
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov word [ebp - 0x48], 0xbd
mov byte [ebp - 0x49], 0
mov byte [ebp - 0x49], 0x61
movsx eax, byte [ebp - 0x49]
dec eax
mov byte [ebp - 0x49], al
movsx eax, byte [ebp - 0x49]
add eax, 0xa
mov byte [ebp - 0x49], al
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0
call dword [sym.imp.GDI32.dll_BeginPath]
push dword [ebp - 0x3c]
push dword [ebp + 0x10]
call fcn.004040fa
pop ecx
pop ecx
test eax, eax
je 0x403051
push dword [ebp - 0x3c]
call fcn.00403e65
pop ecx
mov word [ebp - 0x68], 0x8c
mov byte [ebp - 0x61], 0
movzx eax, byte [ebp - 0x61]
test eax, eax
je 0x402ef8
movzx eax, byte [ebp - 0x61]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x61], al
movzx eax, byte [ebp - 0x61]
test eax, eax
je 0x402f04
mov byte [ebp - 0x61], 0
movzx eax, byte [ebp - 0x61]
test eax, eax
jne 0x402f10
mov byte [ebp - 0x61], 0
push 0x1c6
push 0x45
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push 0
call dword [sym.imp.GDI32.dll_UnrealizeObject]
push 4
push 0
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.DLL_MoveFileExA]
mov dword [ebp - 0x60], 0x11
mov dword [ebp - 0x60], 0x80
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x62], 0
movzx eax, byte [ebp - 0x62]
test eax, eax
je 0x402f61
movzx eax, byte [ebp - 0x62]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x62], al
movzx eax, byte [ebp - 0x62]
test eax, eax
je 0x402f6d
mov byte [ebp - 0x62], 0
movzx eax, byte [ebp - 0x62]
test eax, eax
jne 0x402f79
mov byte [ebp - 0x62], 0
push 0
call dword [sym.imp.GDI32.dll_GetBkColor]
push 0x401228
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
call dword [sym.imp.USER32.dll_GetCapture]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c], eax
push dword [ebp - 0x7c]
call fcn.004013a4
pop ecx
mov dword [ebp - 0x70], 0x19d
mov dword [ebp - 0x70], 0xee
mov eax, dword [ebp - 0x70]
dec eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
add eax, 0x27
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x5c], 0x180
mov dword [ebp - 0x5c], 0xa6
mov eax, dword [ebp - 0x5c]
dec eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
add eax, 0x61
mov dword [ebp - 0x5c], eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentThread]
push 0x401163
push dword [ebp + 0x14]
call fcn.004040fa
pop ecx
pop ecx
mov dword [ebp - 0x54], 0x61
mov dword [ebp - 0x54], 0xaa
mov eax, dword [ebp - 0x54]
dec eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
add eax, 0x87
mov dword [ebp - 0x54], eax
mov word [ebp - 0x50], 0x3c
push 0
call dword [sym.imp.GDI32.dll_UnrealizeObject]
mov dword [ebp - 0x34], 1
mov word [ebp - 0x6c], 4
mov byte [ebp - 0x55], 0x1a
mov byte [ebp - 0x55], 0x6f
movsx eax, byte [ebp - 0x55]
dec eax
mov byte [ebp - 0x55], al
movsx eax, byte [ebp - 0x55]
add eax, 0x45
mov byte [ebp - 0x55], al
push 0
call dword [sym.imp.GDI32.dll_CloseFigure]
mov eax, dword [ebp - 0x34]
jmp 0x403085
leave
ret