Function at 0x40f160
Capabilities:
Copy file
Delete file
Move file

Disassembly:
push 0xffffffffffffffff
push 0x4cb785
mov eax, dword fs:[0]
push eax
sub esp, 0x74c
mov eax, dword [0x4eadc8]
xor eax, esp
mov dword [esp + 0x748], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eadc8]
xor eax, esp
push eax
lea eax, [esp + 0x760]
mov dword fs:[0], eax
mov esi, ecx
mov edi, 1
push 0x518
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], edi
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x2c], eax
xor ebx, ebx
mov dword [esp + 0x768], ebx
cmp eax, ebx
je 0x40f1d7
mov ecx, eax
call fcn.0048af60
mov ebx, eax
mov dword [esp + 0x34], eax
jmp 0x40f1db
mov dword [esp + 0x34], ebx
or ebp, 0xffffffff
push esi
mov ecx, ebx
mov dword [esp + 0x76c], ebp
call fcn.0048afa0
test eax, eax
jne 0x40f20c
test ebx, ebx
je 0x40f205
mov ecx, ebx
call fcn.0048af80
push ebx
call fcn.0048d634
add esp, 4
mov eax, edi
jmp 0x40fcfd
mov ecx, dword [0x4efb90]
push 0
call fcn.0047a400
mov ecx, dword [0x4efb90]
call fcn.0047a6c0
mov eax, dword [0x6391d8]
mov ecx, dword [0x4efb90]
push eax
push ecx
lea ecx, [esp + 0x50]
call fcn.00489780
mov dword [esp + 0x768], edi
push esi
mov edi, 0x4dcbcc
call fcn.004021e0
push eax
push 0xc8
lea edx, [esp + 0x54]
push 0x64
push edx
call fcn.004871a0
add esp, 0x14
mov edi, 0x4dcc00
call fcn.004021e0
push eax
push 0xd9
lea eax, [esp + 0x50]
push 0x64
push eax
call fcn.004871a0
add esp, 0x10
lea ecx, [esp + 0x48]
mov dword [esp + 0x768], ebp
call fcn.004897b0
movzx ecx, byte [0x4f9a14]
movzx edx, byte [0x4ed266]
push 0x4ea66c
push ecx
push edx
call fcn.0047aee0
add esp, 0xc
push 0xff
lea eax, [esp + 0x161]
push 0
push eax
mov byte [esp + 0x2b], 0
mov byte [esp + 0x168], 0
call fcn.00493ca0
add esp, 0xc
push 0xff
lea ecx, [esp + 0x61]
push 0
push ecx
mov byte [esp + 0x68], 0
call fcn.00493ca0
add esp, 0xc
push 0xff
lea edx, [esp + 0x261]
push 0
push edx
mov byte [esp + 0x268], 0
call fcn.00493ca0
add esp, 0xc
push 0x38
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x768], 2
test eax, eax
je 0x40f334
push 0x800
mov ecx, eax
call fcn.0047804e
jmp 0x40f336
xor eax, eax
mov esi, eax
mov dword [esp + 0x768], ebp
push 0
mov ecx, ebx
mov dword [esp + 0x2c], esi
call fcn.0048b150
test eax, eax
je 0x40fcc4
lea ebp, [ebx + 0x418]
cmp byte [ebp], 0
mov edi, dword [sym.imp.kernel32.dll_CopyFileA]
je case.0x40f42b.1
mov ecx, 0x4dc778
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f391
test dl, dl
je 0x40f38d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f391
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f371
xor eax, eax
jmp 0x40f396
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f416
cmp byte [esp + 0x15c], al
je 0x40f3b2
lea eax, [esp + 0x15c]
push eax
mov ecx, esi
call fcn.00477c01
test esi, esi
je 0x40f3c6
mov ecx, esi
call fcn.00478094
push esi
call fcn.0048d634
add esp, 4
push 0x38
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x768], 3
test eax, eax
je 0x40f3f1
push 0x800
mov ecx, eax
call fcn.0047804e
jmp 0x40f3f3
xor eax, eax
mov dword [esp + 0x768], 0xffffffff
mov esi, eax
mov dword [esp + 0x28], esi
mov byte [esp + 0x15c], 0
mov byte [esp + 0x1f], 0
jmp case.0x40f42b.1
movsx eax, byte [esp + 0x1f]
cmp eax, 0x70
ja case.0x40f42b.1
movzx ecx, byte [eax + 0x40fe38]
jmp dword [ecx*4 + 0x40fe20]
mov ecx, 0x4dc77c
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f460
test dl, dl
je 0x40f45c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f460
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f440
xor eax, eax
jmp 0x40f465
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f4aa
mov ecx, dword [ebx + 0x10]
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0x23]
push eax
push 0x4dc780
push ecx
call fcn.0048e15e
add esp, 0x10
lea edx, [esp + 0x15c]
push edx
mov ecx, esi
call fcn.00477a5d
test eax, eax
je 0x40fd37
mov ecx, esi
call fcn.00477696
jmp case.0x40f42b.1
mov ecx, 0x4dcc18
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f4d1
test dl, dl
je 0x40f4cd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f4d1
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f4b1
xor eax, eax
jmp 0x40f4d6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f545
mov edx, dword [ebx + 0x10]
lea eax, [esp + 0x35c]
push eax
lea ecx, [esp + 0x60]
push ecx
push 0x4dc794
push edx
xor esi, esi
call fcn.0048e15e
lea eax, [esp + 0x36c]
push 0x72
push eax
call fcn.0048ffa0
add esp, 0x18
test eax, eax
je 0x40f512
mov esi, 0x100
lea ecx, [esp + 0x35c]
push 0x77
push ecx
call fcn.0048ffa0
add esp, 8
test eax, eax
je 0x40f52e
or esi, 0x80
lea edx, [esp + 0x5c]
push esi
push edx
call fcn.0049005e
mov esi, dword [esp + 0x30]
add esp, 8
jmp case.0x40f42b.1
mov ecx, 0x4dc788
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f570
test dl, dl
je 0x40f56c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f570
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f550
xor eax, eax
jmp 0x40f575
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f5a1
mov ecx, dword [ebx + 0x10]
lea eax, [esp + 0x5c]
push eax
push 0x4dbb64
push ecx
call fcn.0048e15e
lea edx, [esp + 0x68]
add esp, 0xc
push edx
call fcn.0048f468
add esp, 4
jmp case.0x40f42b.1
mov ecx, 0x4dc78c
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f5c8
test dl, dl
je 0x40f5c4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f5c8
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f5a8
xor eax, eax
jmp 0x40f5cd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f616
mov edx, dword [ebx + 0x10]
lea eax, [esp + 0x25c]
push eax
lea ecx, [esp + 0x60]
push ecx
push 0x4dc794
push edx
call fcn.0048e15e
add esp, 0x10
lea eax, [esp + 0x5c]
call fcn.0040edf0
test eax, eax
je case.0x40f42b.1
push 0
lea eax, [esp + 0x260]
push eax
lea ecx, [esp + 0x64]
push ecx
call edi
jmp case.0x40f42b.1
mov ecx, 0x4dc79c
mov eax, ebp
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f640
test dl, dl
je 0x40f63c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f640
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f620
xor eax, eax
jmp 0x40f645
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f69b
mov ecx, dword [ebx + 0x10]
lea edx, [esp + 0x25c]
push edx
lea eax, [esp + 0x60]
push eax
push 0x4dc794
push ecx
call fcn.0048e15e
add esp, 0x10
lea eax, [esp + 0x5c]
call fcn.0040edf0
test eax, eax
je case.0x40f42b.1
push 0
lea edx, [esp + 0x260]
push edx
lea eax, [esp + 0x64]
push eax
call edi
lea ecx, [esp + 0x5c]
push ecx
call fcn.0048f468
add esp, 4
jmp case.0x40f42b.1
mov ecx, 0x4dc7a4
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f6c2
test dl, dl
je 0x40f6be
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f6c2
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f6a2
xor eax, eax
jmp 0x40f6c7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f720
mov ecx, dword [ebx + 0x10]
lea edx, [esp + 0x25c]
push edx
lea eax, [esp + 0x60]
push eax
push 0x4dc794
push ecx
call fcn.0048e15e
add esp, 0x10
lea eax, [esp + 0x5c]
call fcn.0040edf0
test eax, eax
je case.0x40f42b.1
lea edx, [esp + 0x25c]
push edx
call dword [sym.imp.kernel32.dll_DeleteFileA]
lea eax, [esp + 0x25c]
push eax
lea ecx, [esp + 0x60]
push ecx
call dword [sym.imp.kernel32.dll_MoveFileA]
jmp case.0x40f42b.1
mov ecx, 0x4dcc20
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f747
test dl, dl
je 0x40f743
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f747
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f727
xor eax, eax
jmp 0x40f74c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f8a6
mov ecx, dword [ebx + 0x10]
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x2b], al
lea eax, [esp + 0x2b]
push eax
push 0x4dc780
push ecx
call fcn.0048e15e
add esp, 0x10
cmp byte [esp + 0x27], 0x6f
jne case.0x40f42b.1
lea ecx, [esp + 0x18]
call fcn.00478a24
mov ebx, 4
push 0x70
mov dword [esp + 0x76c], ebx
call fcn.0048d65a
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x768], 5
test eax, eax
je 0x40f7b7
push eax
call fcn.0046d410
mov esi, eax
jmp 0x40f7b9
xor esi, esi
push 0
push 1
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x774], bl
call fcn.00478c05
test al, al
je 0x40fd55
lea eax, [esp + 0x18]
push eax
mov ebx, esi
call fcn.0046c430
lea ecx, [esp + 0x18]
call fcn.00478a2a
push 0
push 2
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x24]
call fcn.00478c05
test al, al
je 0x40fd87
lea eax, [esp + 0x18]
mov ecx, esi
mov byte [esi + 1], 0
call fcn.0046ce90
lea ecx, [esp + 0x18]
call fcn.00478a2a
push 0
push 1
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x24]
call fcn.00478c05
test al, al
je 0x40fd8e
lea eax, [esp + 0x18]
push eax
call fcn.0046c430
lea ecx, [esp + 0x18]
call fcn.00478a2a
push 0
push 2
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x24]
call fcn.00478c05
test al, al
je 0x40fd55
lea eax, [esp + 0x18]
mov ecx, esi
mov byte [esi + 1], 1
call fcn.0046ce90
lea ecx, [esp + 0x18]
call fcn.00478a2a
call fcn.0040feb0
lea ecx, [esp + 0x18]
mov dword [esp + 0x768], 0xffffffff
call fcn.00478af3
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
jmp case.0x40f42b.1
mov ecx, 0x4dcc24
mov eax, ebp
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40f8d0
test dl, dl
je 0x40f8cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40f8d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f8b0
xor eax, eax
jmp 0x40f8d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40f9d7
lea edx, [esp + 0x44]
push edx
mov edx, dword [ebx + 0x10]
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x664]
push ecx
push 0x4dcc2c
push edx
call fcn.0048e15e
add esp, 0x14
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x660]
push ecx
lea edx, [esp + 0x364]
push 0x4dcc38
push edx
call fcn.0048dc72
push 0x38
call fcn.0048d65a
add esp, 0x14
mov dword [esp + 0x38], eax
mov dword [esp + 0x768], 6
test eax, eax
je 0x40f94c
push 0x800
mov ecx, eax
call fcn.0047804e
mov edi, eax
jmp 0x40f94e
xor edi, edi
lea eax, [esp + 0x35c]
push eax
mov ecx, edi
mov dword [esp + 0x76c], 0xffffffff
call fcn.00477a5d
test eax, eax
je 0x40fd51
lea ecx, [esp + 0x5c]
push 0x4dcc40
push ecx
call fcn.0048b4b0
lea edx, [esp + 0x64]
push edx
push edi
call fcn.004781af
add esp, 0x10
test eax, eax
jne 0x40f9bf
lea eax, [esp + 0x35c]
push 0x4dc164
push eax
call fcn.00477073
add esp, 8
test eax, eax
je 0x40f9b5
mov esi, eax
call fcn.0040ef50
mov esi, dword [esp + 0x28]
cmp eax, dword [esp + 0x44]
jne 0x40fd95
test edi, edi
je case.0x40f42b.1
mov esi, edi
call fcn.00409710
mov esi, dword [esp + 0x28]
jmp case.0x40f42b.1
mov ecx, 0x4dcc5c
mov eax, ebp
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40fa00
test dl, dl
je 0x40f9fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40fa00
add eax, 2
add ecx, 2
test dl, dl
jne 0x40f9e0
xor eax, eax
jmp 0x40fa05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40fa5e
mov eax, dword [ebx + 0x10]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x60]
push edx
push 0x4dcc64
push eax
call fcn.0048e15e
lea ecx, [esp + 0x6c]
push 0x4dc164
push ecx
call fcn.00477073
add esp, 0x18
test eax, eax
je 0x40fa42
mov esi, eax
call fcn.0040ef50
mov esi, dword [esp + 0x28]
cmp eax, dword [esp + 0x3c]
jne 0x40fd95
lea edx, [esp + 0x5c]
push edx
call fcn.0048f468
add esp, 4
jmp case.0x40f42b.1
mov ecx, 0x4dcc6c
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40fa85
test dl, dl
je 0x40fa81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40fa85
add eax, 2
add ecx, 2
test dl, dl
jne 0x40fa65
xor eax, eax
jmp 0x40fa8a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40fabc
mov edx, dword [ebx + 0x10]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x60]
push ecx
push 0x4dcc64
push edx
call fcn.0048e15e
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x70]
call fcn.0040efd0
add esp, 0x14
jmp case.0x40f42b.1
mov ecx, 0x4dcc74
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40fae3
test dl, dl
je 0x40fadf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40fae3
add eax, 2
add ecx, 2
test dl, dl
jne 0x40fac3
xor eax, eax
jmp 0x40fae8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x40f42b.1
mov eax, dword [ebx + 0x10]
lea ecx, [esp + 0x55c]
push ecx
lea edx, [esp + 0x460]
push edx
push 0x4dc794
push eax
call fcn.0048e15e
push 0x70
call fcn.0048d65a
add esp, 0x14
mov dword [esp + 0x38], eax
mov dword [esp + 0x768], 7
test eax, eax
je 0x40fb35
push eax
call fcn.0046d410
mov edi, eax
jmp 0x40fb37
xor edi, edi
or esi, 0xffffffff
lea ecx, [esp + 0x20]
mov dword [esp + 0x768], esi
call fcn.00478a24
push 0
push 1
lea ecx, [esp + 0x464]
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x774], 8
call fcn.00478c05
test al, al
je 0x40fdae
lea edx, [esp + 0x20]
push edx
mov ebx, edi
call fcn.0046c430
lea ecx, [esp + 0x20]
call fcn.00478a2a
push 0
push 1
lea eax, [esp + 0x564]
push eax
lea ecx, [esp + 0x2c]
call fcn.00478c05
test al, al
je 0x40fddf
lea esi, [esp + 0x20]
call fcn.0046cd60
mov ecx, esi
call fcn.00478a2a
push 0
push 2
lea ecx, [esp + 0x464]
push ecx
mov ecx, esi
call fcn.00478c05
test al, al
je 0x40fdff
mov eax, esi
mov ecx, edi
call fcn.0046ce90
mov ecx, esi
call fcn.00478a2a
test edi, edi
je 0x40fbea
mov esi, edi
call fcn.0040feb0
lea edx, [esp + 0x55c]
push edx
call fcn.0048f468
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esp + 0x768], 0xffffffff
call fcn.00478af3
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
jmp case.0x40f42b.1
push ebp
mov ecx, esi
call fcn.0047829a
jmp case.0x40f42b.1
push 0x4dc164
push ebp
call fcn.00477073
add esp, 8
test eax, eax
je case.0x40f42b.1
push eax
call fcn.0048ed93
add esp, 4
push ebp
mov ecx, esi
call fcn.00478326
push ebp
test eax, eax
je 0x40fca2
call fcn.0048f468
add esp, 4
jmp case.0x40f42b.1
push 0x4dc164
push ebp
call fcn.00477073
add esp, 8
test eax, eax
je case.0x40f42b.1
push eax
call fcn.0048ed93
add esp, 4
push ebp
mov ecx, esi
call fcn.00478784
push ebp
test eax, eax
je 0x40fd25
call dword [sym.imp.kernel32.dll_DeleteFileA]
jmp case.0x40f42b.1
push ebp
mov ecx, esi
call fcn.00478214
push 0
mov ecx, ebx
call fcn.0048b150
test eax, eax
je 0x40fcc4
jmp 0x40f35a
lea eax, [esp + 0x160]
push eax
push 0x4dcca4
push 0x4dc1e8
call fcn.00476f98
add esp, 0x10
mov dword [esp + 0x30], 0
test esi, esi
je 0x40fcd8
mov ecx, esi
call fcn.00478094
push esi
call fcn.0048d634
add esp, 4
test ebx, ebx
je 0x40fcec
mov ecx, ebx
call fcn.0048af80
push ebx
call fcn.0048d634
add esp, 4
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0048f468
mov eax, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x760]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x748]
xor ecx, esp
call fcn.0048d5a8
add esp, 0x758
ret
lea ecx, [esp + 0x160]
push ecx
push 0x4dccb8
jmp 0x40fcaf
lea edx, [esp + 0x15c]
push edx
push 0x4dc178
push 0x4dc1e8
call fcn.00476f98
add esp, 0xc
xor eax, eax
jmp 0x40fcfd
lea eax, [esp + 0x5c]
push eax
push 0x4dc178
push 0x4dc8cc
call fcn.00476f98
lea ecx, [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x768], 0xffffffff
call fcn.00478af3
xor eax, eax
jmp 0x40fcfd
lea ecx, [esp + 0x5c]
push ecx
jmp 0x40fd5a
lea edx, [esp + 0x5c]
push edx
jmp 0x40fd5a
push 0x4dcc44
push 0x4dc1e8
call fcn.00476f98
add esp, 8
xor eax, eax
jmp 0x40fcfd
lea ecx, [esp + 0x45c]
push ecx
push 0x4dcc7c
push 0x4dcc88
call fcn.00476f98
lea ecx, [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x768], esi
call fcn.00478af3
xor eax, eax
jmp 0x40fcfd
lea edx, [esp + 0x55c]
push edx
push 0x4dcc90
push 0x4dcc88
call fcn.00476f98
lea ecx, [esp + 0x2c]
jmp 0x40fd6d
lea eax, [esp + 0x45c]
push eax
push 0x4dcc9c
push 0x4dcc88
call fcn.00476f98
lea ecx, [esp + 0x2c]
jmp 0x40fd6d