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

Disassembly:
push 0x194
mov eax, 0x51eea9
call fcn.004d8af2
mov esi, edx
mov dword [ebp - 0x48], esi
mov ebx, ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x64], eax
and dword [ebp - 4], 0
mov ecx, dword [eax]
cmp ecx, dword [eax + 4]
je 0x4763a6
mov dword [eax + 4], ecx
mov edx, dword [0x57d3bc]
mov ecx, dword [0x57d3c0]
cmp edx, ecx
je 0x4763e2
cmp eax, 0x57d3bc
je 0x4763c8
sub ecx, edx
push ecx
push edx
mov ecx, eax
call fcn.004b6869
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
jmp 0x476c17
xor al, al
lea ecx, [ebp - 0x60]
mov byte [ebp - 0x39], al
call fcn.0040687a
mov byte [ebp - 4], 1
cmp byte [esi], 0
je 0x47686a
lea ecx, [ebp - 0x20]
call fcn.0042d1df
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 2
call fcn.0042ce1d
lea eax, [ebp + 8]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0xc8]
call fcn.00405d6e
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x54]
push eax
push dword [0x57d3f4]
lea edx, [ebp - 0xc8]
push dword [0x57d3f0]
lea ecx, [ebp - 0x38]
call fcn.00431e11
add esp, 0x10
mov byte [ebp - 4], 4
cmp dword [ebp - 0x38], 0
jge 0x4764c7
cmp dword [ebp - 0x34], 0
mov eax, 0x2178
cmovne eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push ecx
mov esi, esp
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x58]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 5
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xc8]
call fcn.0042cff5
lea ecx, [ebp - 0x20]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx - 0x10]
jmp 0x476c0c
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
lea esi, [eax + 0x10]
mov dword [ebp - 0x44], esi
lea ecx, [ebp - 0x5c]
call fcn.0040687a
push ecx
mov byte [ebp - 4], 7
lea eax, [esi - 0x10]
mov edi, esp
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x40], edi
mov ecx, eax
mov dword [ebp - 0x4c], eax
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 8
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push ecx
mov esi, esp
mov dword [ebp - 0x40], esi
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x5c]
mov dword [esi], eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.0043bfa3
add esp, 0x10
mov byte [ebp - 4], 9
cmp dword [ebp - 0x38], 0
jge 0x4765b1
cmp dword [ebp - 0x34], 0
mov eax, 0x217b
cmovne eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push ecx
mov esi, esp
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x58]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xa
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
jmp 0x4764a4
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edx, dword [ebp - 0x48]
lea ecx, [ebp - 0x2c]
push 0x54b59c
lea edx, [edx + 4]
call fcn.00409442
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0xb
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xc
call fcn.00405d6e
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00407189
mov esi, dword [ebp - 0x60]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x476746
push 0
push ecx
lea eax, [esi - 0x10]
mov edi, esp
mov dword [ebp - 0x2c], edi
mov ecx, eax
mov dword [ebp - 0x40], eax
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x38]
mov dword [edi], eax
mov edi, dword [ebp - 0x64]
mov edx, edi
call fcn.0042a7f9
pop ecx
pop ecx
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x38], 0
jge 0x4766da
cmp dword [ebp - 0x34], 0
mov eax, 0x217e
cmovne eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push ecx
mov esi, esp
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x58]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xe
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
call fcn.00407189
lea ecx, [ebp - 0xc8]
call fcn.0042cff5
lea ecx, [ebp - 0x20]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x40]
jmp 0x476c0c
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jne 0x47671b
push 0x217f
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x38]
call fcn.00406620
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.0040121b
jmp 0x4766a1
push ecx
mov edi, esp
mov byte [ebp - 0x39], 1
lea ecx, [esi - 0x10]
mov dword [ebp - 0x2c], edi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x70]
mov dword [edi], eax
call fcn.0042b82a
pop ecx
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
call fcn.00407189
lea ecx, [ebp - 0xc8]
call fcn.0042cff5
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.0042dcf9
mov al, byte [ebp - 0x39]
test al, al
je 0x47686d
mov edi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x48]
cmp byte [ecx], 0
je 0x476bdf
test al, al
jne 0x476bdf
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x38]
mov eax, dword [edi + 4]
sub eax, dword [edi]
mov edx, dword [edi]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.0044356d
pop ecx
pop ecx
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x58], 0
jge 0x476af3
cmp dword [ebp - 0x54], 0
mov eax, 0x219b
cmovne eax, dword [ebp - 0x54]
push eax
push dword [ebp - 0x58]
push ecx
mov edi, esp
mov dword [ebp - 0x44], edi
mov ebx, dword [ebp - 0x50]
lea ecx, [ebx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x70]
mov dword [edi], eax
call fcn.00406620
mov edi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1b
call fcn.0040121b
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x476850
mov eax, dword [ebp - 0x30]
sub eax, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x48], eax
cmp eax, 0x1000
jb 0x476847
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00405c9b
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x40]
push eax
push ecx
call fcn.004d840d
pop ecx
pop ecx
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, edi
jmp 0x476c1e
mov esi, dword [ebp - 0x60]
lea ecx, [ebp - 0x1a0]
call fcn.00431fa4
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xf8]
push dword [0x57d3f4]
push dword [0x57d3f0]
call fcn.0042d6ec
push ecx
mov byte [ebp - 4], 0x11
mov edi, esp
mov dword [ebp - 0x44], edi
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0xf8]
mov dword [edi], eax
lea eax, [ebp - 0x38]
push eax
call fcn.0042d9ba
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x38], 0
jge 0x476940
cmp dword [ebp - 0x34], 0
mov eax, 0x2189
cmovne eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push ecx
mov edi, esp
mov dword [ebp - 0x44], edi
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x58]
mov dword [edi], eax
call fcn.00406620
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x13
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf8]
call fcn.0042dec1
lea ecx, [ebp - 0x190]
call fcn.0040ca92
lea ecx, [ebp - 0x194]
call fcn.00427477
jmp 0x476c09
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
push 0x1f4
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.0042dadf
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x38]
call fcn.0040121b
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0x38], 0
jge 0x476a21
cmp dword [ebp - 0x34], 0
mov eax, 0x218c
cmovne eax, dword [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push ecx
mov edi, esp
mov dword [ebp - 0x44], edi
mov ebx, dword [ebp - 0x30]
lea ecx, [ebx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x70]
mov dword [edi], eax
call fcn.00406620
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 0x16
call fcn.0040121b
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf8]
call fcn.0042dec1
lea ecx, [ebp - 0x190]
call fcn.0040ca92
lea ecx, [ebp - 0x194]
call fcn.00427477
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x74]
jmp 0x476c1e
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x18c]
call fcn.0040dd33
mov byte [ebp - 4], 0x17
cmp dword [ebp - 0x18], 0
jne 0x476a8d
push 0x2190
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x70]
call fcn.00406620
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x18
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x28]
call fcn.0040fc1e
mov ecx, dword [ebp - 0x50]
jmp 0x476912
push dword [ebp - 0x18]
mov edi, dword [ebp - 0x64]
mov ecx, edi
call fcn.00409336
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
push dword [edi]
call fcn.004d99b0
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.0040fc1e
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf8]
call fcn.0042dec1
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 1
call fcn.0040ca92
lea ecx, [ebp - 0x194]
call fcn.00427477
mov al, byte [ebp - 0x39]
jmp 0x47677e
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x476b39
mov eax, dword [ebp - 0x30]
sub eax, ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x48], eax
cmp eax, 0x1000
jb 0x476b30
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00405c9b
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x40]
push eax
push ecx
call fcn.004d840d
pop ecx
pop ecx
lea ecx, [ebp - 0x48]
call fcn.004282f6
mov edi, eax
push 0x5444e8
lea edx, [ebp - 0x60]
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x2c]
call fcn.00409442
push edi
mov edx, eax
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x4c]
call fcn.0040a037
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00407189
mov edi, dword [ebp - 0x64]
mov eax, dword [edi + 4]
mov ebx, dword [edi]
sub eax, ebx
push eax
push ecx
mov edi, esp
mov dword [ebp - 0x44], edi
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x70]
mov edx, ebx
mov dword [edi], eax
call fcn.0042a406
pop ecx
pop ecx
mov ecx, dword [ebp - 0x68]
mov ebx, dword [eax]
shr ebx, 0x1f
lea ecx, [ecx - 0x10]
call fcn.00407189
test bl, bl
jne 0x476bcd
push esi
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ebx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x64]
mov edx, 0x57d3bc
cmp ecx, edx
je 0x476bfa
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
push eax
push dword [ecx]
mov ecx, edx
call fcn.004b6869
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, ebx
call fcn.004d8aa1
ret