Function at 0x4156c0
Capabilities:
Move file

Disassembly:
sub esp, 0x80c
push ebx
push ebp
push esi
push edi
mov edi, eax
mov eax, dword [edi + 0x84b0]
cmp dword [eax + 4], 0
lea esi, [edi + 0x8d50]
je 0x4156ec
mov eax, dword [eax + 8]
mov edx, dword [esi]
add eax, 0x68
push eax
mov ecx, esi
call dword [edx + 8]
mov eax, dword [edi + 0x84b0]
lea ebx, [edi + 0x8d98]
mov ecx, ebx
call fcn.00412f45
mov eax, ebx
call fcn.00412f5a
test al, al
jne 0x41594d
mov eax, esi
call fcn.00412f5a
test al, al
jne 0x41594d
push 0x10
pop ebp
cmp dword [edi + 0x8d6c], ebp
jb 0x415730
mov ecx, dword [edi + 0x8d58]
jmp 0x415736
lea ecx, [edi + 0x8d58]
cmp dword [edi + 0x8db4], ebp
jb 0x415746
mov eax, dword [edi + 0x8da0]
jmp 0x41574c
lea eax, [edi + 0x8da0]
push ecx
push eax
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x4157cf
mov eax, ebx
call fcn.00404e88
test al, al
je 0x4157cf
mov esi, dword [edi + 0x84ac]
mov eax, ebx
call fcn.0040b3a6
mov esi, dword [edi + 0x84c0]
test esi, esi
je 0x41578c
cmp byte [edi + 0x84c6], 0
jne 0x41578c
mov bl, 1
call fcn.00456f34
cmp dword [edi + 0x8db4], ebp
jb 0x41579c
mov eax, dword [edi + 0x8da0]
jmp 0x4157a2
lea eax, [edi + 0x8da0]
push eax
call dword [sym.imp.MSVCR71.dll__unlink]
mov esi, dword [edi + 0x84c0]
test esi, esi
pop ecx
mov ebp, eax
je 0x4157bd
xor bl, bl
call fcn.00456f34
test ebp, ebp
je 0x4157cc
mov eax, dword [edi + 0x84ac]
call fcn.0040a746
push 0x10
pop ebp
cmp dword [edi + 0x8d6c], ebp
jb 0x4157df
mov ecx, dword [edi + 0x8d58]
jmp 0x4157e5
lea ecx, [edi + 0x8d58]
cmp dword [edi + 0x8db4], ebp
jb 0x4157f5
mov eax, dword [edi + 0x8da0]
jmp 0x4157fb
lea eax, [edi + 0x8da0]
push ecx
push eax
call sub.MSVCR71.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x415905
cmp byte [edi + 0x84c5], 0
je 0x41581a
call fcn.00402c4d
mov esi, dword [edi + 0x84c0]
test esi, esi
mov byte [esp + 0x17], 0
je 0x415839
cmp byte [edi + 0x84c6], 0
jne 0x415839
mov bl, 1
call fcn.00456f34
call fcn.00467fbd
cmp eax, 2
jne 0x415879
cmp dword [edi + 0x8db4], ebp
jb 0x415853
mov ecx, dword [edi + 0x8da0]
jmp 0x415859
lea ecx, [edi + 0x8da0]
cmp dword [edi + 0x8d6c], ebp
jb 0x415869
mov eax, dword [edi + 0x8d58]
jmp 0x41586f
lea eax, [edi + 0x8d58]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x4158af
cmp dword [edi + 0x8db4], ebp
jb 0x415889
mov ecx, dword [edi + 0x8da0]
jmp 0x41588f
lea ecx, [edi + 0x8da0]
cmp dword [edi + 0x8d6c], ebp
jb 0x41589f
mov eax, dword [edi + 0x8d58]
jmp 0x4158a5
lea eax, [edi + 0x8d58]
push 2
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x4158b8
mov byte [esp + 0x17], 1
mov esi, dword [edi + 0x84c0]
test esi, esi
je 0x4158c9
xor bl, bl
call fcn.00456f34
cmp byte [esp + 0x17], 0
je 0x415905
lea eax, [edi + 0x8dc0]
cmp dword [eax + 0x18], ebp
jb 0x4158e0
mov eax, dword [eax + 4]
jmp 0x4158e3
add eax, 4
push eax
push 0xffffffffffffffff
mov ecx, 0x432
call fcn.004075db
push eax
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
lea eax, [esp + 0x18]
jmp 0x415959
push 0xffffffffffffffff
mov ecx, 0x433
call fcn.004075db
push eax
mov ecx, edi
call fcn.0040e512
mov esi, dword [edi + 0x84b0]
lea eax, [edi + 0x8d50]
call fcn.0040af8c
mov esi, dword [edi + 0x84b0]
lea eax, [edi + 0x8d98]
call fcn.00412ee8
mov edi, dword [edi + 0x84b0]
push 0
push 0xf
pop ecx
call fcn.0040afe6
jmp 0x415961
push 0xffffffffffffffff
mov ecx, 0x4a1
call fcn.004075db
mov ecx, edi
push eax
call fcn.0040e512
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80c
ret