Function at 0x4155df
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 0x41560b
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.00412eca
mov eax, ebx
call fcn.00412edf
test al, al
jne 0x41586c
mov eax, esi
call fcn.00412edf
test al, al
jne 0x41586c
push 0x10
pop ebp
cmp dword [edi + 0x8d6c], ebp
jb 0x41564f
mov ecx, dword [edi + 0x8d58]
jmp 0x415655
lea ecx, [edi + 0x8d58]
cmp dword [edi + 0x8db4], ebp
jb 0x415665
mov eax, dword [edi + 0x8da0]
jmp 0x41566b
lea eax, [edi + 0x8da0]
push ecx
push eax
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x4156ee
mov eax, ebx
call fcn.00404e17
test al, al
je 0x4156ee
mov esi, dword [edi + 0x84ac]
mov eax, ebx
call fcn.0040b34d
mov esi, dword [edi + 0x84c0]
test esi, esi
je 0x4156ab
cmp byte [edi + 0x84c6], 0
jne 0x4156ab
mov bl, 1
call fcn.00456bca
cmp dword [edi + 0x8db4], ebp
jb 0x4156bb
mov eax, dword [edi + 0x8da0]
jmp 0x4156c1
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 0x4156dc
xor bl, bl
call fcn.00456bca
test ebp, ebp
je 0x4156eb
mov eax, dword [edi + 0x84ac]
call fcn.0040a6ed
push 0x10
pop ebp
cmp dword [edi + 0x8d6c], ebp
jb 0x4156fe
mov ecx, dword [edi + 0x8d58]
jmp 0x415704
lea ecx, [edi + 0x8d58]
cmp dword [edi + 0x8db4], ebp
jb 0x415714
mov eax, dword [edi + 0x8da0]
jmp 0x41571a
lea eax, [edi + 0x8da0]
push ecx
push eax
call sub.MSVCR71.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x415824
cmp byte [edi + 0x84c5], 0
je 0x415739
call fcn.00402c0f
mov esi, dword [edi + 0x84c0]
test esi, esi
mov byte [esp + 0x17], 0
je 0x415758
cmp byte [edi + 0x84c6], 0
jne 0x415758
mov bl, 1
call fcn.00456bca
call fcn.004679ae
cmp eax, 2
jne 0x415798
cmp dword [edi + 0x8db4], ebp
jb 0x415772
mov ecx, dword [edi + 0x8da0]
jmp 0x415778
lea ecx, [edi + 0x8da0]
cmp dword [edi + 0x8d6c], ebp
jb 0x415788
mov eax, dword [edi + 0x8d58]
jmp 0x41578e
lea eax, [edi + 0x8d58]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x4157ce
cmp dword [edi + 0x8db4], ebp
jb 0x4157a8
mov ecx, dword [edi + 0x8da0]
jmp 0x4157ae
lea ecx, [edi + 0x8da0]
cmp dword [edi + 0x8d6c], ebp
jb 0x4157be
mov eax, dword [edi + 0x8d58]
jmp 0x4157c4
lea eax, [edi + 0x8d58]
push 2
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x4157d7
mov byte [esp + 0x17], 1
mov esi, dword [edi + 0x84c0]
test esi, esi
je 0x4157e8
xor bl, bl
call fcn.00456bca
cmp byte [esp + 0x17], 0
je 0x415824
lea eax, [edi + 0x8dc0]
cmp dword [eax + 0x18], ebp
jb 0x4157ff
mov eax, dword [eax + 4]
jmp 0x415802
add eax, 4
push eax
push 0xffffffffffffffff
mov ecx, 0x432
call fcn.0040753b
push eax
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
lea eax, [esp + 0x18]
jmp 0x415878
push 0xffffffffffffffff
mov ecx, 0x433
call fcn.0040753b
push eax
mov ecx, edi
call fcn.0040e4b9
mov esi, dword [edi + 0x84b0]
lea eax, [edi + 0x8d50]
call fcn.0040af33
mov esi, dword [edi + 0x84b0]
lea eax, [edi + 0x8d98]
call fcn.00412e6d
mov edi, dword [edi + 0x84b0]
push 0
push 0xf
pop ecx
call fcn.0040af8d
jmp 0x415880
push 0xffffffffffffffff
mov ecx, 0x4a1
call fcn.0040753b
mov ecx, edi
push eax
call fcn.0040e4b9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80c
ret