Function at 0x401557
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
push esi
push edi
mov byte [ebp - 0x208], 0
lea eax, [ebp - 0x104]
push eax
push 0
push 0
lea eax, [ebp - 0x208]
push eax
call sub.KERNEL32.dll_GetTempFileNameA
lea eax, [ebp - 0x104]
push eax
call sub.KERNEL32.dll_DeleteFileA
lea eax, [ebp - 0x104]
push eax
call sub.SHLWAPI.DLL_PathGetDriveNumberA
mov edi, eax
or edi, edi
jle 0x4016d8
mov dword [ebp - 0x238], 0xbc616b
mov eax, dword [0x424b48]
add eax, 0x36b2
mov dword [ebp - 0x210], eax
and eax, 0x1f44
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x210]
add eax, dword [ebp - 0x214]
and eax, 0x26ab
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x20c], 0x1555
mov dword [ebp - 0x224], 0x7b84bc9
imul eax, dword [ebp - 0x210], 0x1a22
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x218]
or eax, dword [ebp - 0x214]
mov dword [ebp - 0x21c], eax
and eax, 0xdaa740
and eax, dword [ebp - 0x210]
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x240], 0x3767
mov eax, dword [ebp - 0x214]
mov edx, dword [ebp - 0x218]
add edx, 0x7b874ee
or eax, edx
mov dword [ebp - 0x244], eax
imul eax, dword [ebp - 0x214], 0x816
mov dword [ebp - 0x22c], eax
mov eax, 0x4593
imul edx, dword [ebp - 0x21c], 0x1555
sub eax, edx
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x220], 0x7f77
mov eax, dword [ebp - 0x22c]
and eax, 0x47a7
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x210]
mov edx, dword [ebp - 0x228]
add edx, 0x4ee
and edx, eax
or edx, eax
mov dword [ebp - 0x24c], edx
mov dword [ebp - 0x234], 0x10
mov dword [ebp - 0x250], 0x7f77
imul eax, dword [ebp - 0x230], 0x5666
sub eax, 0x10
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x258], 0xbc616c
mov esi, edi
or edi, edi
jle 0x40181f
mov dword [ebp - 0x234], 0xbc616b
mov eax, dword [0x424b48]
add eax, 0x52a2
mov dword [ebp - 0x214], eax
sub eax, 0x58a6
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x214]
and ecx, 0x57ec
and ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x210], 0x3ba3
mov edx, dword [ebp - 0x214]
or dx, 0x3fef
mov dword [ebp - 0x218], edx
mov dword [ebp - 0x220], 0x7baf
imul edx, eax, 0x1c2cc85f
add edx, eax
mov dword [ebp - 0x224], edx
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x218]
and eax, 0x4cd8
mov edx, dword [ebp - 0x20c]
sub edx, 0x3ba3
or eax, edx
mov dword [ebp - 0x228], eax
mov eax, 0x28b7
sub eax, dword [ebp - 0x218]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x20c]
imul edx, eax, 0x534f
sub edx, eax
mov dword [ebp - 0x240], edx
imul eax, dword [ebp - 0x21c], 0x3ba3
imul eax, eax, 0x321c
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x218]
imul edx, dword [ebp - 0x20c], 0x2921
sub eax, edx
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x22c], 0x3ba3
mov dword [ebp - 0x230], 0x2b9
imul eax, dword [ebp - 0x228], 0x2600
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x250], 0x3ba3
mov eax, dword [ebp - 0x21c]
or ax, 0x1dad
mov edx, 0x2b9
sub edx, dword [ebp - 0x214]
or eax, edx
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x258], 0xbc616c
mov edi, esi
inc edi
or esi, esi
jne 0x401926
add byte [esi + ebx], dh
add byte [eax - 0x63ffffe2], cl
push ds
add byte [eax], al
mov dl, 0x1e
add byte [eax], al
add eax, 0x9006900
add byte [ebp], ch
or eax, dword [eax]
outsd dx, dword [esi]
add byte [edi], al
add byte [ebx], ch
push es
add byte [edx], ch
or al, byte [eax]
outsb dx, byte [esi]
add byte [eax + eax], cl
jo 0x401857
add byte [eax], al
add byte fs:[ecx], al
add byte [ebp], ah
add al, byte [eax]
add byte [ebx], al
add byte [edi], ah
add al, 0
push 0x6c000800
add byte [0x4e007100], cl
inc esp
inc ecx
jo 0x4018e3
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [esi + 0x44], cl
inc edi
je 0x4018cc
jb 0x4018fb
outsd dx, dword [esi]
jb 0x4018df
je 0x401900
imul ebp, dword [esi + 0x67], 0x444e0041
inc edi
je 0x4018e0
jb 0x40190f
outsd dx, dword [esi]
jb 0x4018f3
je 0x401914
imul ebp, dword [esi + 0x67], 0x444e0057
inc edi
je 0x401902
push 0x53657261
arpl word gs:[ebp + 0x72], si
imul esi, dword [ecx + edi*2 + 0x41], 0x64444e00
inc edi
je fcn.00401918
push 0x53657261
arpl word gs:[ebp + 0x72], si
jne 0x401940
imul esi, dword [ecx + edi*2 + 0x57], 0x64444e00
inc edi
je 0x40192f
jb 0x401952
jae 0x401953
push ebx
push ebx
push 0x41657261
popal
jb 0x40194b
inc ecx
add byte [esi + 0x44], cl
inc edi
je 0x401944
jb 0x401967
jae 0x401968
je 0x40195a
push ebx
push ebx
push 0x57657261
push edi
add byte [esi + 0x44], cl
dec ecx
dec ecx
jae 0x40195a
popal
insb byte es:[edi], dx
imul esp, dword [ecx + eax*2 + 0x70], 0x706f5470
imul esp, dword [ebx + 0x4c], 0x41747369
arpl word [ecx + ebp*2 + 0x73], cx
je 0x401956
inc ecx
add byte [esi + 0x44], cl
mov eax, edi
add byte [ebx + 0x438b08c4], al
or byte [ebx + 0x214a6456], cl
shl byte [ebx + 0x404124], 1
push esi
dec edx
inc ecx
inc eax
add byte [edx + 1], ch
and al, 0x41
inc ecx
inc eax
add byte [ecx + 0x7e836846], cl
push 0x8b087500
inc esi
jmp 0x401bae