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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d2f5e
push eax
mov dword fs:[0], esp
sub esp, 0x670
lea eax, [esp + 0x20c]
push ebx
mov ebx, dword [esp + 0x684]
push ebp
push esi
push edi
mov esi, ecx
push 0
push eax
mov ecx, ebx
call fcn.004257f0
mov ebp, dword [esp + 0x694]
lea ecx, [esp + 0x320]
push ebp
call fcn.0047b3c0
lea ecx, [esp + 0x21c]
push ecx
lea ecx, [esp + 0x324]
call fcn.0047b500
test eax, eax
je 0x443732
mov edx, dword [esi + 8]
push 5
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi]
mov edx, dword [esi + 8]
push 0x10
mov ecx, dword [eax + 8]
mov eax, dword [0x4f5e08]
dec ecx
neg ecx
sbb ecx, ecx
add ecx, 0x246
push ecx
push 0x244
push edx
push eax
call fcn.00471530
add esp, 0x14
xor eax, eax
jmp 0x443a86
mov eax, dword [ebx + 0x34]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x118]
push eax
push ecx
call edi
mov eax, dword [esi + 0x28]
cmp eax, 1
jne 0x44377a
test eax, eax
jle 0x443759
mov edx, dword [esi + 0x24]
mov eax, dword [edx]
jmp 0x44375b
xor eax, eax
cmp ebx, eax
jne 0x44377a
mov eax, dword [esi]
add eax, 0x118
test eax, eax
je 0x44377a
cmp byte [eax], 0
je 0x44377a
push eax
lea eax, [esp + 0x11c]
push eax
call edi
mov ecx, dword [esi]
lea edx, [esp + 0x118]
push edx
lea eax, [esp + 0x18]
push ebp
push eax
mov dword [ecx + 0x21c], 1
call fcn.00471100
mov ecx, dword [ebx + 4]
mov edx, dword [esi]
add esp, 0xc
add edx, 0xc
mov eax, dword [ecx + 0x28]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x443847
mov eax, dword [esi]
mov cl, byte [eax + 0x118]
test cl, cl
jne 0x443847
mov eax, dword [eax + 8]
test eax, eax
je 0x443a81
cmp eax, 1
jne 0x443847
mov edi, dword [ebx + 0x34]
lea eax, [esp + 0x14]
push eax
call fcn.00471a00
mov ecx, dword [esi]
add esp, 4
mov edx, dword [ecx]
push edi
push 0x73
push edx
push eax
call fcn.00472a10
add esp, 0x10
lea eax, [esp + 0x14]
mov edi, 2
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x443847
mov ebp, dword [ebx + 0x34]
lea ecx, [esp + 0x14]
push ecx
call fcn.00471a00
mov edx, dword [esi]
add esp, 4
mov ecx, dword [edx]
push ebp
push edi
push 0x74
push ecx
push eax
call fcn.00472a10
add esp, 0x14
lea edx, [esp + 0x14]
inc edi
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x44380d
mov ebp, dword [esp + 0x694]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4438de
lea ecx, [esp + 0x14]
lea edx, [esp + 0x21c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x4438de
push 1
push ebp
call fcn.0045fce0
mov edi, eax
add esp, 8
test edi, edi
je 0x443a81
push 0x40
call fcn.004bd49b
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x688], 0
je 0x4438ad
mov edx, dword [ebx + 0x34]
mov ecx, eax
push edx
push edi
call fcn.00424810
mov esi, eax
jmp 0x4438af
xor esi, esi
push esi
push ebx
mov ecx, 0x4f5850
mov dword [esp + 0x690], 0xffffffff
call fcn.0043c460
test esi, esi
je 0x4438d2
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ecx, edi
call fcn.0045f810
jmp 0x443a81
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x443995
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
lea edx, [esp + 0x14]
push 1
push edx
call fcn.004718c0
add esp, 8
test eax, eax
jne 0x443981
lea eax, [esp + 0x42c]
push 0x100
push eax
call fcn.004715d0
mov edx, dword [esp + 0x69c]
mov eax, dword [0x4f5e08]
add esp, 8
lea ecx, [esp + 0x42c]
push ecx
push edx
push 0x247
lea ecx, [esp + 0x538]
push eax
push ecx
call fcn.00472a10
mov edx, dword [esi + 8]
add esp, 0x14
push 5
push edx
call edi
mov ecx, dword [0x4ed220]
mov eax, dword [esi + 8]
push 0x102
lea edx, [esp + 0x530]
push ecx
push edx
push eax
call ebp
cmp eax, 3
je 0x4439a6
cmp eax, 5
je 0x443a81
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4438fe
mov ecx, dword [ebx + 4]
push 1
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov edi, eax
test edi, edi
jne 0x4439ad
xor eax, eax
jmp 0x443a86
mov eax, dword [edi]
push 0
push 0
mov ecx, edi
call dword [eax + 0x14]
test eax, eax
je 0x443a08
mov eax, dword [edi + 0x14]
xor ebx, ebx
test eax, eax
jle 0x443a01
mov eax, dword [esi + 0x74]
test eax, eax
jne 0x443a01
cmp ebx, dword [edi + 0x14]
jge 0x4439dd
test ebx, ebx
jl 0x4439dd
mov ecx, dword [edi + 0x10]
mov ebp, dword [ecx + ebx*4]
jmp 0x4439df
xor ebp, ebp
test byte [ebp + 0x2c], 4
jne 0x4439f9
mov ecx, ebp
call fcn.00426280
lea edx, [esp + 0x14]
mov ecx, esi
push edx
push ebp
call fcn.00442ed0
mov eax, dword [edi + 0x14]
inc ebx
cmp ebx, eax
jl 0x4439c5
mov ebx, dword [esp + 0x690]
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x443a38
mov eax, dword [edi + 0x14]
xor ebp, ebp
test eax, eax
jle 0x443a38
cmp ebp, eax
jge 0x443a30
test ebp, ebp
jl 0x443a30
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + ebp*4]
test ecx, ecx
je 0x443a30
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [edi + 0x14]
inc ebp
cmp ebp, eax
jl 0x443a1c
mov eax, dword [edi + 0x10]
push eax
call fcn.004bd4c4
push 0x80
call fcn.004bd49b
add esp, 8
mov ecx, edi
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0x1f
mov dword [edi + 0x20], 0x40
call fcn.0045f810
mov ecx, dword [esi]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x443a81
push 0
push 0
mov ecx, ebx
call fcn.004259a0
mov eax, 1
mov ecx, dword [esp + 0x680]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x67c
ret 8