Function at 0x403e80
Capabilities:
Delete file
Move file
Set file attributes

Disassembly:
mov eax, 0x33ec
call fcn.0040e1e0
push ebx
push ebp
push esi
xor ebx, ebx
cmp byte [0x41b530], bl
push edi
mov edi, dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
je 0x403ed0
mov esi, 0x41b530
movzx eax, byte [esi]
push eax
call edi
test eax, eax
je 0x403eb4
add esi, 2
xor al, al
jmp 0x403ec2
cmp byte [esi], 0x5c
jne 0x403ebd
mov al, 1
jmp 0x403ebf
xor al, al
add esi, 1
cmp byte [esi], bl
jne 0x403ea3
test al, al
jne 0x403ed0
mov byte [esi], 0x5c
mov byte [esi + 1], bl
cmp byte [0x41add8], bl
je 0x403f0d
mov esi, 0x41add8
lea ecx, [ecx]
movzx ecx, byte [esi]
push ecx
call edi
test eax, eax
je 0x403ef1
add esi, 2
xor al, al
jmp 0x403eff
cmp byte [esi], 0x5c
jne 0x403efa
mov al, 1
jmp 0x403efc
xor al, al
add esi, 1
cmp byte [esi], bl
jne 0x403ee0
test al, al
jne 0x403f0d
mov byte [esi], 0x5c
mov byte [esi + 1], bl
push 0x41b530
push str._sInstall.log
push 0x41b300
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x25a0
lea edx, [esp + 0xe5c]
push 0
push edx
call fcn.00409eb0
mov eax, dword [0x41b9ac]
add esp, 0xc
push 0x100000
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
push esi
call fcn.00406a30
mov ecx, dword [0x41b9ac]
add esp, 4
push esi
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x41a9ac]
test eax, eax
mov edx, 0x41a04c
jle 0x403fb9
mov edi, dword [0x41b9a4]
mov esi, eax
cmp byte [edx], bl
jne 0x403f88
test edi, edi
jne 0x403fb1
mov eax, dword [edx + 0x14]
mov ecx, eax
imul eax, eax, 0x12d
imul ecx, ecx, 0x4b4
add eax, dword [esp + ecx + 0x1308]
lea ecx, [esp + ecx + 0x1308]
mov dword [esp + eax*4 + 0xe58], edx
add dword [ecx], 1
add edx, 0x18
sub esi, 1
jne 0x403f80
xor eax, eax
lea edx, [esp + 0x1308]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
test esi, esi
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
jle 0x40438b
mov dword [0x41b988], eax
call fcn.00402c40
test al, al
jne 0x40401a
lea esp, [esp]
mov edx, dword [0x41b97c]
push 0x141
push 0x413bdc
push 0x413bf8
push edx
call edi
cmp eax, 1
je 0x4043e4
call fcn.00402c40
test al, al
je 0x403ff0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test esi, esi
mov dword [0x41b508], eax
mov byte [0x41b408], 0
mov dword [esp + 0x1c], 0
jle 0x40438b
mov ebp, dword [esp + 0x14]
add ebp, 0xfffffb50
mov esi, dword [ebp]
mov byte [esp + 0x130], 0
mov byte [esp + 0x28], 0
mov byte [esp + 0x550], 0
mov eax, dword [esi + 4]
test eax, eax
mov byte [esp + 0x448], 0
je 0x404079
lea ecx, [esp + 0x130]
call fcn.00402fb0
mov eax, dword [esi + 8]
test eax, eax
je 0x404089
lea ecx, [esp + 0x28]
call fcn.00402fb0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x40409c
lea ecx, [esp + 0x550]
call fcn.00402fb0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4040af
lea ecx, [esp + 0x448]
call fcn.00402fb0
movzx eax, byte [esi + 1]
cmp eax, 9
ja case.0x4040bc.8
jmp dword [eax*4 + 0x4043f4]
lea eax, [esp + 0x28]
push eax
call fcn.004030b0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4043d7
cmp byte [esi + 1], 6
lea edx, [esp + 0x28]
sete cl
lea eax, [esp + 0x130]
push ecx
push edx
call fcn.00403400
add esp, 8
jmp 0x40436b
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x23c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [esp + 0x238], 0
lea esi, [esp + 0x238]
mov edi, esi
je 0x404163
movzx edx, byte [esi]
push edx
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x404134
add esi, 2
jmp 0x40413e
cmp byte [esi], 0x5c
jne 0x40413b
mov edi, esi
add esi, 1
cmp byte [esi], 0
jne 0x404121
lea eax, [esp + 0x238]
cmp edi, eax
je 0x404163
cmp byte [edi], 0x5c
jne 0x404163
mov ecx, eax
push ecx
mov byte [edi], 0
call fcn.004030b0
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x4043d7
push 1
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x138]
push eax
call fcn.00403590
add esp, 0xc
jmp 0x40436b
cmp dword [0x41abc4], 0
je 0x40422c
lea eax, [esp + 0x130]
call fcn.00404420
test eax, eax
jne 0x40422c
lea ecx, [esp + 0x130]
push ecx
lea edx, [esp + 0x65c]
push str.__s_r_n
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov bl, byte [esp + 0x664]
add esp, 0xc
test bl, bl
lea esi, [esp + 0x658]
mov byte [esp + 0x24], bl
je 0x40422c
mov edi, dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
mov eax, dword [esp + 0x24]
push eax
add esi, 1
call edi
test eax, eax
je 0x404206
mov eax, dword [0x41abc4]
mov byte [eax], bl
mov cl, byte [esi]
add eax, 1
mov byte [eax], cl
add eax, 1
add esi, 1
jmp 0x40421d
mov dl, bl
sub dl, 0x61
cmp dl, 0x19
ja 0x404213
add bl, 0xe0
mov eax, dword [0x41abc4]
mov byte [eax], bl
add eax, 1
mov bl, byte [esi]
test bl, bl
mov dword [0x41abc4], eax
mov byte [esp + 0x24], bl
jne 0x4041e2
xor ebx, ebx
jmp 0x404371
lea eax, [esp + 0x130]
push eax
call fcn.00403200
add esp, 4
jmp 0x40436b
push 0x80
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x134]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x4043d2
lea eax, [esp + 0x130]
call fcn.00404420
test eax, eax
je 0x404291
mov byte [eax], 0x2a
lea eax, [esp + 0x28]
call fcn.00404420
test eax, eax
je 0x4042a1
mov byte [eax], 0x2a
xor eax, eax
lea ecx, [esp + 0x28]
call fcn.00404500
xor ebx, ebx
jmp 0x404371
lea edx, [esp + 0x130]
push edx
call fcn.004030b0
add esp, 4
jmp 0x40436b
lea eax, [esp + 0x28]
lea ebx, [esp + 0x130]
call fcn.00404bf0
jmp 0x40436b
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x344]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov bl, byte [esp + 0x340]
test bl, bl
lea edi, [esp + 0x340]
mov esi, edi
mov byte [esp + 0x18], bl
je 0x404331
mov edx, dword [esp + 0x18]
push edx
add esi, 1
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x40431f
add esi, 1
jmp 0x404327
cmp bl, 0x5c
jne 0x404327
lea edi, [esi - 1]
mov bl, byte [esi]
test bl, bl
mov byte [esp + 0x18], bl
jne 0x404308
lea eax, [esp + 0x448]
push eax
lea ecx, [esp + 0x554]
push ecx
lea edx, [esp + 0x348]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x140]
push ecx
mov byte [edi], 0
call fcn.00404770
add esp, 0x14
neg al
sbb eax, eax
and eax, 0xfffffff7
add eax, 9
mov ebx, eax
test ebx, ebx
jne 0x4043d7
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add eax, 1
add ebp, 4
cmp eax, dword [edx]
mov dword [esp + 0x1c], eax
jl 0x404046
mov eax, dword [esp + 0x20]
add dword [esp + 0x14], 0x4b4
add eax, 1
cmp eax, 8
mov dword [esp + 0x20], eax
jl 0x403fca
mov eax, 0x41b530
mov ebx, str.PATH
call fcn.00404bf0
mov eax, 0x417d10
mov ebx, str.TITLE
call fcn.00404bf0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x33ec
ret
mov ebx, 1
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x33ec
ret
pop edi
pop esi
pop ebp
mov eax, 0x64
pop ebx
add esp, 0x33ec
ret