Function at 0x4d0150
Capabilities:
Copy file
Move file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdc8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x200], ecx
mov dword [ebp - 0x204], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404150
xor eax, eax
push ebp
push 0x4d1042
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004ce9a0
mov eax, dword [0x541dec]
cmp dword [eax], 3
sete al
mov edx, dword [ebp - 4]
mov byte [edx + 0xdc], al
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x10]
sub al, 2
jne 0x4d020e
mov eax, dword [ebp - 4]
call fcn.004d1ac8
test al, al
je 0x4d020e
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x10]
mov edx, dword [0x541b78]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x1fc], eax
mov byte [ebp - 0x1f8], 0xb
mov eax, dword [0x541e04]
mov eax, dword [eax]
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 0x1f0], 0xb
lea eax, [ebp - 0x1fc]
push eax
push 1
mov ecx, 0x4d105c
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c068
call fcn.00403778
cmp dword [ebp - 8], 0
jne 0x4d0222
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xc]
call fcn.00403db8
mov eax, dword [0x541d80]
mov edx, dword [ebp - 8]
call fcn.00403d74
lea edx, [ebp - 0x200]
mov eax, dword [0x541d80]
mov eax, dword [eax]
call fcn.0040910c
mov eax, dword [ebp - 0x200]
call fcn.00402810
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc9], 0
je 0x4d026e
mov ecx, 0x4d10d4
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c034
call fcn.00403778
cmp dword [ebp - 8], 0
jne 0x4d028a
mov ecx, 0x4d1128
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c034
call fcn.00403778
lea eax, [ebp - 0x200]
push eax
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 8]
call fcn.0040910c
mov eax, dword [ebp - 0x204]
mov cl, 8
mov edx, 0x4d1148
call fcn.004b8c68
mov eax, dword [ebp - 0x200]
push eax
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 8]
call fcn.0040910c
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x20]
pop ecx
call fcn.00403fe8
mov dword [ebp - 0xc], 2
xor eax, eax
push ebp
push 0x4d1005
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4d0fe8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
cmp dword [eax + 8], 0
jle 0x4d0344
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc4], 0
je 0x4d0344
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
cmp dword [eax + 0x19c], 0
je 0x4d0344
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
mov eax, dword [eax + 0x19c]
call fcn.00460ae8
mov edx, dword [ebp - 4]
mov dword [edx + 0xbc], eax
jmp 0x4d034f
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xbc], edx
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x10]
sub al, 1
jb 0x4d036c
je 0x4d08c6
dec al
je 0x4d0db0
jmp 0x4d0f0c
mov edx, dword [ebp - 0x20]
lea eax, [ebp - 0x1ec]
call fcn.00405bae
lea eax, [ebp - 0x1ec]
call fcn.00405fc2
call fcn.004027d4
xor eax, eax
push ebp
push 0x4d08bf
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x21
call fcn.004061e7
push eax
lea eax, [ebp - 0x20c]
mov edx, dword [ebp - 4]
add edx, 4
mov ecx, 5
call fcn.00402f80
lea edx, [ebp - 0x20c]
pop eax
call fcn.004061ac
mov dl, 0x20
call fcn.004061e7
push eax
lea eax, [ebp - 0x210]
mov edx, dword [ebp - 4]
mov dl, byte [edx + 9]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x210]
lea eax, [ebp - 0x214]
call fcn.00402c88
mov edx, 0x4d1150
lea eax, [ebp - 0x214]
mov cl, 2
call fcn.00402c58
lea edx, [ebp - 0x214]
lea eax, [ebp - 0x218]
call fcn.00402c88
lea eax, [ebp - 0x21c]
mov edx, dword [ebp - 4]
mov dl, byte [edx + 0xa]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x21c]
lea eax, [ebp - 0x218]
mov cl, 3
call fcn.00402c58
lea edx, [ebp - 0x218]
pop eax
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov edx, 0x4d115c
lea eax, [ebp - 0x1ec]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x2f
call fcn.004061e7
mov edx, dword [ebp - 4]
add edx, 0x11
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x3f
call fcn.004061e7
mov edx, dword [ebp - 4]
add edx, 0x62
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x24
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xbc]
call fcn.00402f3c
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
push dword [eax + 0xb8]
push dword [eax + 0xb4]
lea edx, [ebp - 0x200]
mov eax, 0x4d119c
call fcn.0040aedc
mov eax, dword [ebp - 0x200]
push eax
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x43
call fcn.004061e7
pop edx
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
lea eax, [ebp - 0x238]
push eax
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x5e
call fcn.004061e7
pop edx
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd4], 0
je 0x4d05aa
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x54
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xd4]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd8], 0
je 0x4d05e2
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x46
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xd8]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd0], 0
je 0x4d0629
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x4c
call fcn.004061e7
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd0]
mov eax, dword [eax + 0x9c]
call fcn.00460ae8
mov edx, eax
pop eax
call fcn.00402f3c
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0xc4]
test ebx, ebx
je 0x4d0768
mov eax, ebx
call fcn.00461a20
test eax, eax
jle 0x4d0768
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
call fcn.00461a20
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4d0878
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
mov edx, esi
call fcn.00461a14
mov eax, dword [eax + 0x180]
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4d06cb
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x4d06be
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x63]
sub al, 1
jb 0x4d06a0
je 0x4d06b0
jmp 0x4d06be
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
jmp 0x4d06be
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d075b
inc esi
dec ebx
jne 0x4d0665
jmp 0x4d0878
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x4d0878
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
call fcn.004ce5d8
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4d07e0
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x4d07d3
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x63]
sub al, 1
jb 0x4d07b5
je 0x4d07c5
jmp 0x4d07d3
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
jmp 0x4d07d3
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d0870
inc esi
dec ebx
jne 0x4d0780
mov edx, 0x4d11e8
lea eax, [ebp - 0x1ec]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0xc8], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d0f0c
lea eax, [ebp - 0x1ec]
call fcn.00405d18
call fcn.004027d4
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0xde], 0
jne 0x4d08e8
mov ecx, 0x4d11f4
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c034
call fcn.00403778
mov dl, 1
mov eax, dword [0x40f7b0]
call fcn.0040314c
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x4d0da9
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1ec]
mov edx, dword [ebp - 0x1c]
call fcn.004ce31c
lea eax, [ebp - 0x1ec]
call fcn.00405fc2
call fcn.004027d4
xor eax, eax
push ebp
push 0x4d0d7e
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x2f
call fcn.004061e7
mov edx, dword [ebp - 4]
add edx, 0x11
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x3f
call fcn.004061e7
mov edx, dword [ebp - 4]
add edx, 0x62
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x24
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xbc]
call fcn.00402f3c
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
push dword [eax + 0xb8]
push dword [eax + 0xb4]
lea edx, [ebp - 0x200]
mov eax, 0x4d119c
call fcn.0040aedc
mov eax, dword [ebp - 0x200]
push eax
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x43
call fcn.004061e7
pop edx
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
lea edx, [ebp - 0x238]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
lea eax, [ebp - 0x238]
push eax
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x5e
call fcn.004061e7
pop edx
call fcn.004061ac
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd4], 0
je 0x4d0a69
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x54
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xd4]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd8], 0
je 0x4d0aa1
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x46
call fcn.004061e7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xd8]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
cmp dword [eax + 0xd0], 0
je 0x4d0ae8
mov dl, 0x23
lea eax, [ebp - 0x1ec]
call fcn.004061e7
mov dl, 0x4c
call fcn.004061e7
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd0]
mov eax, dword [eax + 0x9c]
call fcn.00460ae8
mov edx, eax
pop eax
call fcn.00402f3c
call fcn.004061d3
call fcn.004027d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
call fcn.00461a20
test eax, eax
jle 0x4d0c22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
call fcn.00461a20
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4d0d37
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
mov edx, esi
call fcn.00461a14
mov eax, dword [eax + 0x180]
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4d0b80
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x4d0b73
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x63]
sub al, 1
jb 0x4d0b55
je 0x4d0b65
jmp 0x4d0b73
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
jmp 0x4d0b73
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d0c15
inc esi
dec ebx
jne 0x4d0b1a
jmp 0x4d0d37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x4d0d37
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
call fcn.004ce5d8
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4d0c9a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x14], 0
je 0x4d0c8d
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x63]
sub al, 1
jb 0x4d0c6f
je 0x4d0c7f
jmp 0x4d0c8d
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
jmp 0x4d0c8d
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x14]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d0d2f
inc esi
dec ebx
jne 0x4d0c3a
mov edx, 0x4d11e8
lea eax, [ebp - 0x1ec]
call fcn.00404330
call fcn.004061d3
call fcn.004027d4
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0xc8], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d0d85
lea eax, [ebp - 0x1ec]
call fcn.00405d18
call fcn.004027d4
ret
push 0xffff
mov ecx, dword [ebp - 0x20]
mov dl, 1
mov eax, dword [0x40f6f0]
call fcn.00412f54
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4d0f05
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4d121c
lea edx, [ebp - 0x200]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
call fcn.00408bd4
push dword [ebp - 0x200]
push 0x4d1238
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.0040405c
mov eax, dword [ebp - 0x18]
call fcn.00403f9c
lea edx, [ebp - 0x200]
call fcn.00408bd4
push dword [ebp - 0x200]
push 0x4d1238
push dword [ebp - 0x18]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.0040405c
mov eax, dword [ebp - 0x18]
call fcn.00403f9c
push eax
lea eax, [ebp - 0x18]
call fcn.0040416c
mov edx, eax
mov eax, dword [ebp - 0x10]
pop ecx
call fcn.00412d14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
call fcn.00461a20
test eax, eax
jle 0x4d0ea4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
call fcn.00461a20
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4d0ee0
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc4]
mov edx, esi
call fcn.00461a14
mov eax, dword [eax + 0x180]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x18]
inc esi
dec ebx
jne 0x4d0e7a
jmp 0x4d0ee0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x4d0ee0
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov edx, esi
call fcn.004ce5d8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4d0edc
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x18]
inc esi
dec ebx
jne 0x4d0eb8
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0xc8], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d0f0c
mov eax, dword [ebp - 0x10]
call fcn.00403174
ret
mov eax, dword [0x541aac]
cmp byte [eax], 0
je 0x4d0f78
push 1
mov eax, dword [ebp - 8]
call fcn.00404160
push eax
mov eax, dword [ebp - 0x20]
call fcn.00404160
push eax
call sub.kernel32.dll_MoveFileExA
test eax, eax
jne 0x4d0fde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1fc], eax
mov byte [ebp - 0x1f8], 0xb
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 0x1f0], 0xb
lea eax, [ebp - 0x1fc]
push eax
push 1
mov ecx, 0x4d1244
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c068
call fcn.00403778
jmp 0x4d0fde
push 0
mov eax, dword [ebp - 8]
call fcn.00404160
push eax
mov eax, dword [ebp - 0x20]
call fcn.00404160
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
je 0x4d0f9f
mov eax, dword [ebp - 0x20]
call fcn.00408fe0
jmp 0x4d0fde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1fc], eax
mov byte [ebp - 0x1f8], 0xb
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1f4], eax
mov byte [ebp - 0x1f0], 0xb
lea eax, [ebp - 0x1fc]
push eax
push 1
mov ecx, 0x4d129c
mov dl, 1
mov eax, dword [0x4ce394]
call fcn.0040c068
call fcn.00403778
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4d0ff7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d100c
ret