Function at 0x1010029c
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1e8
mov eax, dword [0x101dc354]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d8], ebx
push esi
mov esi, edx
push edi
test ebx, ebx
jne 0x101002df
push 0x10020554
mov edx, 0xcd2
mov ecx, 0x10035994
call fcn.100e970f
xor edi, edi
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0x1d0], edi
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1b4], edi
mov dword [ebp - 0x1cc], edi
mov dword [ebp - 0x1b8], edi
mov dword [ebp - 0x1bc], edi
mov dword [ebp - 0x1c8], edi
call fcn.100a565f
push 1
push 0x101dd068
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x1c4], edi
call fcn.100ad791
lea eax, [ebp - 0x1d0]
mov ecx, ebx
push eax
call fcn.101291ff
mov edi, eax
test edi, edi
jns 0x10100369
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x1010034e
mov eax, 0x100082e8
push eax
push 0x100381d0
push 1
push edi
push 0x4000000
call fcn.100ab973
add esp, 0x14
jmp 0x10100772
lea eax, [ebp - 0x1c0]
mov ecx, ebx
push eax
call fcn.100adacf
mov edi, eax
test edi, edi
jns 0x101003a4
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x10100389
mov eax, 0x100082e8
push eax
push 0x10038228
push 1
push edi
push 0x4000000
call fcn.100ab973
add esp, 0x14
jmp 0x1010075e
lea eax, [ebp - 0x1b4]
mov ecx, esi
push eax
push ebx
call fcn.101380a5
mov edi, eax
test edi, edi
jns 0x101003e0
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x101003c5
mov eax, 0x100082e8
push eax
push 0x10038270
push 1
push edi
push 0x4000000
call fcn.100ab973
add esp, 0x14
jmp 0x10100736
push dword [ebp - 0x1c0]
lea eax, [ebp - 0x1b8]
push eax
call fcn.100a7590
mov edi, eax
test edi, edi
jns 0x10100418
push 0x1003829c
push 1
push edi
push 0x4000000
call fcn.100ab973
mov ebx, dword [ebp - 0x1b8]
add esp, 0x10
jmp 0x10100728
mov edx, dword [esi + 0x48]
test edx, edx
jne 0x10100424
mov edx, 0x100082e8
push 0x100095b4
lea ecx, [ebp - 0x1b8]
call fcn.100a9500
mov edi, eax
test edi, edi
jns 0x10100441
push 0x100382c4
jmp 0x101003fd
cmp dword [esi + 0x1ec], 0
mov ebx, dword [ebp - 0x1b8]
je 0x101004a7
mov ecx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x1bc]
push eax
mov edx, 0x10037bd0
call fcn.100eb869
mov edi, eax
test edi, edi
jns 0x10100487
push 0x10037bd8
push 1
push edi
push 0x4000000
call fcn.100ab973
add esp, 0x10
jmp 0x10100700
lea eax, [ebp - 0x1c8]
mov edx, 0x10037bd0
push eax
mov ecx, ebx
call fcn.100eb869
mov edi, eax
test edi, edi
jns 0x101004a7
push 0x100382e8
jmp 0x10100472
mov eax, dword [ebp - 0x1d8]
test byte [eax + 0x4c], 0x20
jne 0x101004e2
lea ecx, [ebp - 0x1cc]
push ecx
push eax
mov ecx, esi
call fcn.101374f7
mov edi, eax
test edi, edi
jns 0x101004e2
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x101004d4
mov eax, 0x100082e8
push eax
push 0x10038320
push 1
push edi
jmp 0x101006f3
mov edx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1d4]
push eax
call fcn.1009925c
mov edi, eax
test edi, edi
jns 0x1010050d
push dword [ebp - 0x1b4]
push 0x1003834c
jmp 0x101004da
mov ecx, dword [ebp - 0x18c]
lea edx, [ebp - 0x1c4]
push 0
lea ecx, [ecx + 0x120]
call fcn.100a6ce0
mov edi, eax
test edi, edi
jns 0x10100539
push dword [ebp - 0x1b4]
push 0x10038370
jmp 0x101004da
push dword [ebp - 0x1c4]
mov ecx, esi
call fcn.100f71a0
mov ecx, dword [esi + 0x48]
test al, al
jne 0x10100584
mov edi, 0x800f0818
mov esi, ecx
test ecx, ecx
jne 0x1010055d
mov esi, 0x100082e8
mov ecx, dword [ebp - 0x1c4]
call fcn.100acc5f
push eax
push esi
push 0x100383b8
push 1
push edi
push 0x4000000
call fcn.100ab973
add esp, 0x18
jmp 0x10100700
test ecx, ecx
jne 0x1010058d
mov ecx, 0x100082e8
mov edx, dword [ebp - 0x1d0]
push ecx
push dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1cc]
call fcn.100ffea4
mov edi, eax
test edi, edi
jns 0x101005c2
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x101005b7
mov eax, 0x100082e8
push eax
push 0x100363f4
jmp 0x101004da
cmp dword [esi + 0x1ec], 0
je 0x1010066e
mov esi, dword [ebp - 0x1c8]
test esi, esi
je 0x1010066e
push esi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1010060b
push 0x80
push esi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFileAttributesW]
push 0x10038418
push 0
push 0
push 0x4000000
call fcn.100ab973
add esp, 0x10
push 1
push esi
push dword [ebp - 0x1bc]
call dword [sym.imp.api_ms_win_core_file_l2_1_0.dll_MoveFileExW]
test eax, eax
jne 0x1010064d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x10100635
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x1010063c
mov edi, 0x80004005
push esi
push dword [ebp - 0x1bc]
push 0x10038448
jmp 0x1010056f
mov ecx, esi
call fcn.100ebb8f
test eax, eax
jns 0x1010066e
push esi
push 0x10038480
push 1
push eax
push 0x4000000
call fcn.100ab973
add esp, 0x14
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1010069c
push 0x80
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFileAttributesW]
push 0x10038418
push 0
push 0
push 0x4000000
call fcn.100ab973
add esp, 0x10
mov esi, dword [ebp - 0x1b4]
push 3
push ebx
push esi
call dword [sym.imp.api_ms_win_core_file_l2_1_0.dll_MoveFileExW]
test eax, eax
jne 0x101006da
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x101006c7
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x101006ce
mov edi, 0x80004005
push ebx
push esi
push 0x10038494
jmp 0x1010056f
xor edx, edx
mov ecx, ebx
push 0
inc edx
call fcn.100ec3a3
test eax, eax
jns 0x10100700
push ebx
push 0x100384c8
push 1
push eax
push 0x4000000
call fcn.100ab973
add esp, 0x14
mov eax, dword [ebp - 0x1bc]
test eax, eax
je 0x10100714
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
mov eax, dword [ebp - 0x1c8]
test eax, eax
je 0x10100728
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
test ebx, ebx
je 0x10100736
lea eax, [ebx - 4]
push eax
call fcn.100b84f9
pop ecx
mov eax, dword [ebp - 0x1b4]
test eax, eax
je 0x1010074a
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
mov eax, dword [ebp - 0x1cc]
test eax, eax
je 0x1010075e
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
mov eax, dword [ebp - 0x1c0]
test eax, eax
je 0x10100772
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x10100786
add eax, 0xfffffffc
push eax
call fcn.100b84f9
pop ecx
mov ecx, dword [ebp - 0x1c4]
test ecx, ecx
je 0x101007a0
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x101e07c0]
call esi
lea ecx, [ebp - 0x1e4]
call fcn.100aa570
lea ecx, [ebp - 0x1b0]
call fcn.100f5877
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b88c0
leave
ret 4