Function at 0x402367
Capabilities:
Delete file
Get common file path
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x4c8]
sub esp, 0x548
mov eax, dword [0x41b9e4]
xor eax, ebp
mov dword [ebp + 0x4c4], eax
mov eax, dword [ebp + 0x4d0]
push esi
push edi
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x4d4]
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x80], eax
call fcn.0040644d
mov esi, edi
call fcn.0040644d
mov esi, dword [ebp - 0x78]
call fcn.0040644d
push edi
mov edi, dword [ebp - 0x6c]
mov esi, ebx
call fcn.00402038
test al, al
je 0x402665
lea eax, [ebx + 0x531]
push 0x4188b8
push eax
call fcn.00409405
mov edi, eax
test edi, edi
pop ecx
pop ecx
jne 0x4023f0
push 0xa02c
call fcn.00406383
pop ecx
jmp 0x402665
push 0x4188b4
push dword [ebp - 0x6c]
call fcn.00409405
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x70], eax
jne 0x402415
push edi
call fcn.00409464
mov dword [esp], 0xa02e
jmp 0x4023e5
cmp byte [ebx + 0xbb3], 0
jne 0x402453
push edi
xor esi, esi
inc esi
push esi
lea eax, [ebp - 0x65]
push esi
push eax
call fcn.0040959e
add esp, 0x10
jmp 0x40244f
push dword [ebp - 0x70]
lea eax, [ebp - 0x65]
push esi
push esi
push eax
call fcn.004096f1
push edi
push esi
lea eax, [ebp - 0x65]
push esi
push eax
call fcn.0040959e
add esp, 0x20
test eax, eax
jne 0x402432
push edi
call fcn.00409464
push dword [ebp - 0x70]
call fcn.00409464
cmp byte [ebx + 0xbb3], 0
pop ecx
pop ecx
jne 0x402489
push dword [ebp - 0x78]
push dword [ebp - 0x6c]
call fcn.00402ec9
test al, al
jne 0x402489
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x402665
cmp dword [ebx + 0x428], 0
je 0x402536
cmp byte [ebx + 0xbb3], 0
jne 0x402536
push str.Compressing_stub_executable_with_upx.exe...
mov eax, ebx
call fcn.00402019
mov edi, 0x418884
lea eax, [ebp + 0x2b4]
push edi
push eax
call fcn.00408f00
lea esi, [ebx + 0x42c]
lea eax, [ebp + 0x2b4]
push esi
push eax
call fcn.00408f10
lea eax, [ebp + 0x2b4]
push str.upx.exe____best___compress_icons0__
push eax
call fcn.00408f10
push dword [ebp - 0x6c]
lea eax, [ebp + 0x2b4]
push eax
call fcn.00408f10
lea eax, [ebp + 0x2b4]
push edi
push eax
call fcn.00408f10
push 1
lea eax, [ebp + 0x2b4]
push 0
push eax
mov ecx, esi
call fcn.0040649d
add esp, 0x34
test eax, eax
je 0x402536
push 0xa
mov edi, ebx
call fcn.00401fa6
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0xa03a
jmp 0x4023e5
push 0xa
mov edi, ebx
call fcn.00401fa6
lea eax, [ebp - 0x64]
push eax
mov edi, 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp + 0x3bc]
push eax
push 0
push 0x418858
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp + 0x3bc]
push 0x418854
push eax
call fcn.00409405
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x70], eax
jne 0x40259f
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp + 0x3bc]
push eax
call esi
push dword [ebp - 0x6c]
call esi
push 0xa036
jmp 0x4023e5
lea eax, [ebp + 0x1ac]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0xa4]
push eax
push edi
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [ebp - 0x7c]
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov byte [eax], 0
lea eax, [ebp + 0xa4]
push eax
call esi
push str.Reading_script_and_merging_includes...
mov eax, ebx
call fcn.00402019
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
call fcn.004026a7
test al, al
mov edi, ebx
push 0xa
jne 0x402623
call fcn.00401fa6
push dword [ebp - 0x6c]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
call edi
lea eax, [ebp + 0x1ac]
push eax
call esi
push dword [ebp - 0x70]
call fcn.00409464
pop ecx
lea eax, [ebp + 0x3bc]
push eax
call edi
jmp 0x402665
call fcn.00401fa6
push dword [ebp - 0x70]
call fcn.00409464
mov edx, dword [ebp - 0x80]
pop ecx
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp + 0x3bc]
push eax
push ebx
call fcn.004027c1
test al, al
lea eax, [ebp + 0x1ac]
push eax
jne 0x402669
call esi
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp + 0x3bc]
push eax
call esi
push dword [ebp - 0x6c]
call esi
xor al, al
jmp 0x40268e
call esi
lea eax, [ebp + 0x3bc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp byte [ebx + 0xbb0], 0
je 0x40268c
push 0xa032
call fcn.004063e8
pop ecx
mov al, 1
mov ecx, dword [ebp + 0x4c4]
pop edi
xor ecx, ebp
pop esi
call fcn.00411ba7
add ebp, 0x4c8
leave
ret 8