Function at 0x411e90
Capabilities:
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x483dc1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x33d0
call fcn.00463720
mov eax, dword [0x4a57cc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3344], eax
cmp dword [ebp - 0x3344], 4
ja case.default.0x411ed6
mov ecx, dword [ebp - 0x3344]
jmp dword [ecx*4 + 0x412a4a]
xor eax, eax
jmp 0x412a34
xor eax, eax
jmp 0x412a34
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe40], 0
jne 0x41203a
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x424
push edx
call fcn.0046cc85
add esp, 8
test eax, eax
jne 0x412033
mov eax, dword [ebp + 8]
add eax, 0x62c
push eax
push 0x48ac78
lea ecx, [ebp - 0x424]
push ecx
call fcn.00463edd
add esp, 0xc
lea edx, [ebp - 0x424]
push edx
lea ecx, [ebp - 0x1698]
call fcn.00412ab0
mov dword [ebp - 0x3348], eax
mov ecx, dword [ebp - 0x3348]
call fcn.00420d30
mov dword [ebp - 0x334c], eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x3350], eax
mov ecx, dword [ebp - 0x3350]
mov dword [ebp - 0x3354], ecx
mov edx, dword [ebp - 0x334c]
mov al, byte [edx]
mov byte [ebp - 0x3355], al
mov ecx, dword [ebp - 0x3350]
mov dl, byte [ebp - 0x3355]
mov byte [ecx], dl
mov eax, dword [ebp - 0x334c]
add eax, 1
mov dword [ebp - 0x334c], eax
mov ecx, dword [ebp - 0x3350]
add ecx, 1
mov dword [ebp - 0x3350], ecx
cmp byte [ebp - 0x3355], 0
jne 0x411f7a
lea ecx, [ebp - 0x1698]
call fcn.00414cd0
push 0x5c
lea edx, [ebp - 0x21c]
push edx
call fcn.004031f0
add esp, 8
mov byte [eax], 0
lea eax, [ebp - 0x21c]
push eax
call fcn.00415600
add esp, 4
lea ecx, [ebp - 0x424]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 1
je 0x41200f
push 0x80
lea edx, [ebp - 0x424]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0x180
push 0x8321
lea eax, [ebp - 0x424]
push eax
call fcn.00464d29
add esp, 0xc
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
jmp 0x412a34
xor eax, eax
jmp 0x412a34
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe40], 1
jne 0x412263
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x834
push ecx
call fcn.0046cc85
add esp, 8
test eax, eax
jne 0x412083
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa3c]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa3c], eax
xor eax, eax
jmp 0x412a34
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x62c
push ecx
push 0x48ac7c
lea edx, [ebp - 0x83c]
push edx
call fcn.00463edd
add esp, 0x10
lea eax, [ebp - 0x83c]
push eax
lea ecx, [ebp - 0x18a4]
call fcn.00412ab0
mov dword [ebp - 0x335c], eax
mov ecx, dword [ebp - 0x335c]
call fcn.00420d30
mov dword [ebp - 0x3360], eax
lea ecx, [ebp - 0x634]
mov dword [ebp - 0x3364], ecx
mov edx, dword [ebp - 0x3364]
mov dword [ebp - 0x3368], edx
mov eax, dword [ebp - 0x3360]
mov cl, byte [eax]
mov byte [ebp - 0x3369], cl
mov edx, dword [ebp - 0x3364]
mov al, byte [ebp - 0x3369]
mov byte [edx], al
mov ecx, dword [ebp - 0x3360]
add ecx, 1
mov dword [ebp - 0x3360], ecx
mov edx, dword [ebp - 0x3364]
add edx, 1
mov dword [ebp - 0x3364], edx
cmp byte [ebp - 0x3369], 0
jne 0x4120e9
lea ecx, [ebp - 0x18a4]
call fcn.00414cd0
push 0x5c
lea eax, [ebp - 0x634]
push eax
call fcn.004031f0
add esp, 8
mov byte [eax], 0
lea ecx, [ebp - 0x634]
push ecx
call fcn.00415600
add esp, 4
lea edx, [ebp - 0x83c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 1
je 0x41217e
push 0x80
lea eax, [ebp - 0x83c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe50], 0
je 0x4121c2
lea edx, [ebp - 0x83c]
push edx
push str._s.bak
lea eax, [ebp - 0xa44]
push eax
call fcn.00463edd
add esp, 0xc
lea ecx, [ebp - 0xa44]
push ecx
lea edx, [ebp - 0x83c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe54], eax
push 0x180
push 0x8321
lea edx, [ebp - 0x83c]
push edx
call fcn.00464d29
add esp, 0xc
mov dword [ebp - 0x428], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe4c], 0
je 0x412258
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
push edx
lea ecx, [ebp - 0x1ab0]
call fcn.00412ab0
mov dword [ebp - 0x3370], eax
mov eax, dword [ebp - 0x3370]
mov dword [ebp - 0x3374], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x3374]
call fcn.00420d30
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa3c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe4c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe4c]
mov edx, dword [ecx]
mov ecx, eax
call dword [edx]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1ab0]
call fcn.00414cd0
mov eax, dword [ebp - 0x428]
jmp 0x412a34
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe40], 2
jne 0x41228b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa3c]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0xa3c], edx
xor eax, eax
jmp 0x412a34
xor eax, eax
jmp 0x412a34
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
push edx
call fcn.00465355
add esp, 4
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe40], 0
jne 0x4122cd
mov ecx, dword [ebp + 8]
add ecx, 0x62c
push ecx
push 0x48ac8c
lea edx, [ebp - 0xc54]
push edx
call fcn.00463edd
add esp, 0xc
jmp 0x4122f2
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x62c
push edx
push 0x48ac90
lea eax, [ebp - 0xc54]
push eax
call fcn.00463edd
add esp, 0x10
push 0
push 0x80
push 3
push 0
push 1
push 0xc0000000
lea ecx, [ebp - 0xc54]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xa48], eax
cmp dword [ebp - 0xa48], 0xffffffff
je 0x412788
lea edx, [ebp - 0xc5c]
push edx
mov eax, dword [ebp + 0x10]
mov cx, word [eax + 0x1a]
push ecx
mov edx, dword [ebp + 0x10]
mov ax, word [edx + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
cmp eax, 1
jne 0x41237c
lea ecx, [ebp - 0xc68]
push ecx
lea edx, [ebp - 0xc5c]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
cmp eax, 1
jne 0x41237c
lea eax, [ebp - 0xc68]
push eax
push 0
lea ecx, [ebp - 0xc68]
push ecx
mov edx, dword [ebp - 0xa48]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov eax, dword [ebp - 0xa48]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 0x10]
movzx edx, word [ecx + 0x1c]
mov dword [ebp - 0xc60], edx
mov eax, dword [ebp - 0xc60]
and eax, 0x27
mov dword [ebp - 0xc60], eax
mov ecx, dword [ebp - 0xc60]
push ecx
lea edx, [ebp - 0xc54]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe40], 0
jne 0x412543
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe48], 0
je 0x41253e
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe48]
mov byte [eax], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe48]
mov byte [edx + 0x208], 0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x1cbc]
call fcn.00412ab0
mov dword [ebp - 0x3378], eax
mov ecx, dword [ebp - 0x3378]
call fcn.00420d30
mov dword [ebp - 0x337c], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe48]
mov dword [ebp - 0x3380], eax
mov ecx, dword [ebp - 0x3380]
mov dword [ebp - 0x3384], ecx
mov edx, dword [ebp - 0x337c]
mov al, byte [edx]
mov byte [ebp - 0x3385], al
mov ecx, dword [ebp - 0x3380]
mov dl, byte [ebp - 0x3385]
mov byte [ecx], dl
mov eax, dword [ebp - 0x337c]
add eax, 1
mov dword [ebp - 0x337c], eax
mov ecx, dword [ebp - 0x3380]
add ecx, 1
mov dword [ebp - 0x3380], ecx
cmp byte [ebp - 0x3385], 0
jne 0x412439
lea ecx, [ebp - 0x1cbc]
call fcn.00414cd0
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe50], 0
je 0x41253e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe54], 0
je 0x41253e
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
push edx
lea ecx, [ebp - 0x1ec8]
call fcn.00412ab0
mov dword [ebp - 0x338c], eax
mov eax, dword [ebp - 0x338c]
mov dword [ebp - 0x3390], eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp + 8]
add ecx, 0x62c
push ecx
lea ecx, [ebp - 0x20d4]
call fcn.00412ab0
mov dword [ebp - 0x3394], eax
mov ecx, dword [ebp - 0x3390]
call fcn.00420d30
push eax
mov ecx, dword [ebp - 0x3394]
call fcn.00420d30
push eax
push 0x48ac98
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe48]
add eax, 0x208
push eax
call fcn.00463edd
add esp, 0x10
lea ecx, [ebp - 0x20d4]
call fcn.00414cd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1ec8]
call fcn.00414cd0
jmp 0x41277e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe40], 1
jne 0x41277e
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe4c], 0
je 0x412583
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe4c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe4c]
mov edx, dword [ecx]
mov ecx, eax
call dword [edx + 4]
test eax, eax
jne 0x412583
xor eax, eax
jmp 0x412a34
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe44], 0
je 0x4126f4
mov byte [ebp - 0x107c], 0
mov byte [ebp - 0xe74], 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
push edx
lea ecx, [ebp - 0x22e0]
call fcn.00412ab0
mov dword [ebp - 0x3398], eax
mov ecx, dword [ebp - 0x3398]
call fcn.00420d30
mov dword [ebp - 0x339c], eax
lea eax, [ebp - 0x107c]
mov dword [ebp - 0x33a0], eax
mov ecx, dword [ebp - 0x33a0]
mov dword [ebp - 0x33a4], ecx
mov edx, dword [ebp - 0x339c]
mov al, byte [edx]
mov byte [ebp - 0x33a5], al
mov ecx, dword [ebp - 0x33a0]
mov dl, byte [ebp - 0x33a5]
mov byte [ecx], dl
mov eax, dword [ebp - 0x339c]
add eax, 1
mov dword [ebp - 0x339c], eax
mov ecx, dword [ebp - 0x33a0]
add ecx, 1
mov dword [ebp - 0x33a0], ecx
cmp byte [ebp - 0x33a5], 0
jne 0x4125e2
lea ecx, [ebp - 0x22e0]
call fcn.00414cd0
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe50], 0
je 0x4126df
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe54], 0
je 0x4126df
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
push edx
lea ecx, [ebp - 0x24ec]
call fcn.00412ab0
mov dword [ebp - 0x33ac], eax
mov eax, dword [ebp - 0x33ac]
mov dword [ebp - 0x33b0], eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp + 8]
add ecx, 0x62c
push ecx
lea ecx, [ebp - 0x26f8]
call fcn.00412ab0
mov dword [ebp - 0x33b4], eax
mov ecx, dword [ebp - 0x33b0]
call fcn.00420d30
push eax
mov ecx, dword [ebp - 0x33b4]
call fcn.00420d30
push eax
push 0x48aca4
lea edx, [ebp - 0xe74]
push edx
call fcn.00463edd
add esp, 0x10
lea ecx, [ebp - 0x26f8]
call fcn.00414cd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24ec]
call fcn.00414cd0
lea eax, [ebp - 0x107c]
push eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xe44]
call fcn.00412b40
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa3c]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa3c], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe4c], 0
je 0x41277e
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x2904]
call fcn.00412ab0
mov dword [ebp - 0x33b8], eax
mov edx, dword [ebp - 0x33b8]
mov dword [ebp - 0x33bc], edx
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x33bc]
call fcn.00420d30
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa3c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe4c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xe4c]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2904]
call fcn.00414cd0
mov eax, 1
jmp 0x412a34
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe40], 0
jne 0x412881
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe48], 0
je 0x41287c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe48]
mov byte [eax], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe48]
mov byte [edx + 0x208], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe50], 0
je 0x41287c
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe54], 0
je 0x41287c
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x2b10]
call fcn.00412ab0
mov dword [ebp - 0x33c0], eax
mov ecx, dword [ebp - 0x33c0]
mov dword [ebp - 0x33c4], ecx
mov dword [ebp - 4], 4
mov edx, dword [ebp + 8]
add edx, 0x62c
push edx
lea ecx, [ebp - 0x2d1c]
call fcn.00412ab0
mov dword [ebp - 0x33c8], eax
mov ecx, dword [ebp - 0x33c4]
call fcn.00420d30
push eax
mov ecx, dword [ebp - 0x33c8]
call fcn.00420d30
push eax
push 0x48acb0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe48]
add ecx, 0x208
push ecx
call fcn.00463edd
add esp, 0x10
lea ecx, [ebp - 0x2d1c]
call fcn.00414cd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b10]
call fcn.00414cd0
jmp 0x412a2a
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe40], 1
jne 0x412a2a
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe4c], 0
je 0x4128bf
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe4c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe4c]
mov edx, dword [edx]
call dword [edx + 4]
test eax, eax
jne 0x4128bf
xor eax, eax
jmp 0x412a34
mov eax, dword [ebp + 8]
cmp dword [eax + 0xe44], 0
je 0x4129a0
mov byte [ebp - 0x148c], 0
mov byte [ebp - 0x1284], 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe50], 0
je 0x41298b
mov edx, dword [ebp + 8]
cmp dword [edx + 0xe54], 0
je 0x41298b
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x2f28]
call fcn.00412ab0
mov dword [ebp - 0x33cc], eax
mov edx, dword [ebp - 0x33cc]
mov dword [ebp - 0x33d0], edx
mov dword [ebp - 4], 5
mov eax, dword [ebp + 8]
add eax, 0x62c
push eax
lea ecx, [ebp - 0x3134]
call fcn.00412ab0
mov dword [ebp - 0x33d4], eax
mov ecx, dword [ebp - 0x33d0]
call fcn.00420d30
push eax
mov ecx, dword [ebp - 0x33d4]
call fcn.00420d30
push eax
push str._s_s.bak
lea ecx, [ebp - 0x1284]
push ecx
call fcn.00463edd
add esp, 0x10
lea ecx, [ebp - 0x3134]
call fcn.00414cd0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2f28]
call fcn.00414cd0
lea edx, [ebp - 0x148c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe44]
call fcn.00412b40
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa3c]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0xa3c], edx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xe4c], 0
je 0x412a2a
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x3340]
call fcn.00412ab0
mov dword [ebp - 0x33d8], eax
mov ecx, dword [ebp - 0x33d8]
mov dword [ebp - 0x33dc], ecx
mov dword [ebp - 4], 6
mov ecx, dword [ebp - 0x33dc]
call fcn.00420d30
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa3c]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe4c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe4c]
mov edx, dword [edx]
call dword [edx]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3340]
call fcn.00414cd0
xor eax, eax
jmp 0x412a34
xor eax, eax
jmp 0x412a34
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.004635af
mov esp, ebp
pop ebp
ret