Function at 0x4dd5ec
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xa64
push 0
push 0
dec ecx
jne 0x4dd5f5
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404100
mov eax, dword [ebp - 0xc]
call fcn.00404100
xor eax, eax
push ebp
push 0x4de04d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
call fcn.00409728
cmp eax, 0xffffffff
je 0x4dd661
and eax, 1
dec eax
jne 0x4dd661
push 0
mov ecx, 0x4de060
mov edx, 0x4de068
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453ae8
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004dcf3c
jmp 0x4ddfa6
mov eax, dword [ebp - 8]
call fcn.00409718
test al, al
jne 0x4dd67c
lea edx, [ebp - 8]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x5174]
call fcn.0040649a
mov eax, dword [0x5034b8]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x5174]
call fcn.004069d1
call fcn.00402874
mov edx, dword [ebp + 8]
lea eax, [ebp - 0x5174]
call fcn.00406a08
call fcn.00402874
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.0040653c
call fcn.00402874
push 0
lea edx, [ebp - 0x14]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.0040653c
call fcn.00402874
lea eax, [ebp - 0x5174]
call fcn.00406604
call fcn.00402874
mov eax, dword [ebp - 4]
push dword [eax + 0x153f8]
mov eax, dword [ebp - 4]
push dword [eax + 0x1544c]
push 0x4de09c
lea edx, [ebp - 0x52c4]
mov eax, dword [ebp - 8]
call fcn.00409830
push dword [ebp - 0x52c4]
push 0x4de0a8
lea eax, [ebp - 0x10]
mov edx, 5
call fcn.0040400c
cmp dword [ebp - 0x14], 0x100
jle 0x4dd82b
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x5174]
call fcn.0040649a
mov eax, dword [0x5034b8]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x5174]
call fcn.004069d1
call fcn.00402874
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x52c0]
call fcn.0040649a
mov edx, 1
lea eax, [ebp - 0x52c0]
call fcn.004069e8
call fcn.00402874
xor ebx, ebx
cmp ebx, dword [ebp - 0x14]
jge 0x4dd809
mov eax, dword [ebp - 0x14]
sub eax, ebx
cmp eax, 0x5000
jle 0x4dd7ca
lea eax, [ebp - 0x24]
push eax
lea edx, [ebp - 0x5028]
mov ecx, 0x5000
lea eax, [ebp - 0x5174]
call fcn.0040653c
call fcn.00402874
jmp 0x4dd7e6
lea edx, [ebp - 0x24]
push edx
mov ecx, eax
lea edx, [ebp - 0x5028]
lea eax, [ebp - 0x5174]
call fcn.0040653c
call fcn.00402874
push 0
lea edx, [ebp - 0x5028]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x52c0]
call fcn.004065a0
call fcn.00402874
add ebx, dword [ebp - 0x24]
cmp ebx, dword [ebp - 0x14]
jl 0x4dd79d
lea eax, [ebp - 0x5174]
call fcn.00406604
call fcn.00402874
lea eax, [ebp - 0x52c0]
call fcn.00406604
call fcn.00402874
jmp 0x4dd896
push 0
mov eax, dword [ebp - 0x10]
call fcn.00404110
push eax
mov eax, dword [ebp - 8]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x4dd896
lea eax, [ebp - 0x28]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00404154
push 0
lea eax, [ebp - 0x52c8]
mov ecx, 0x4de0b4
mov edx, dword [ebp - 0x28]
call fcn.00403f98
mov eax, dword [ebp - 0x52c8]
call fcn.00404110
mov edx, eax
mov ecx, 0x4de060
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453ae8
jmp 0x4ddfa6
mov eax, dword [ebp - 4]
push dword [eax + 0x153f8]
mov eax, dword [ebp - 4]
push dword [eax + 0x1544c]
push 0x4de0d8
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.0040400c
cmp dword [ebp + 8], 0x384
jle 0x4ddb43
cmp dword [ebp + 8], 0x3ca
jne 0x4ddaf1
lea edx, [ebp - 0x52cc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x838]
call fcn.00435418
mov eax, dword [ebp - 0x52cc]
mov edx, 0x4de0a8
call fcn.0040405c
jne 0x4dd959
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00404110
push eax
lea edx, [ebp - 0x52d8]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x52d8]
lea edx, [ebp - 0x52d4]
call fcn.004097fc
push dword [ebp - 0x52d4]
push 0x4de0f0
push 0x4de100
lea eax, [ebp - 0x52d0]
mov edx, 3
call fcn.0040400c
mov eax, dword [ebp - 0x52d0]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
lea edx, [ebp - 0x52dc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x838]
call fcn.00435418
mov eax, dword [ebp - 0x52dc]
mov edx, 0x4de110
call fcn.0040405c
jne 0x4dd9de
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00404110
push eax
lea edx, [ebp - 0x52e8]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x52e8]
lea edx, [ebp - 0x52e4]
call fcn.004097fc
push dword [ebp - 0x52e4]
push 0x4de11c
push 0x4de100
lea eax, [ebp - 0x52e0]
mov edx, 3
call fcn.0040400c
mov eax, dword [ebp - 0x52e0]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
lea edx, [ebp - 0x52ec]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x838]
call fcn.00435418
mov eax, dword [ebp - 0x52ec]
mov edx, 0x4de12c
call fcn.0040405c
jne 0x4dda63
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00404110
push eax
lea edx, [ebp - 0x52f8]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x52f8]
lea edx, [ebp - 0x52f4]
call fcn.004097fc
push dword [ebp - 0x52f4]
push 0x4de138
push 0x4de100
lea eax, [ebp - 0x52f0]
mov edx, 3
call fcn.0040400c
mov eax, dword [ebp - 0x52f0]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
lea edx, [ebp - 0x52fc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x838]
call fcn.00435418
mov eax, dword [ebp - 0x52fc]
mov edx, 0x4de148
call fcn.0040405c
jne 0x4ddbba
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00404110
push eax
lea edx, [ebp - 0x5308]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x5308]
lea edx, [ebp - 0x5304]
call fcn.004097fc
push dword [ebp - 0x5304]
push 0x4de154
push 0x4de100
lea eax, [ebp - 0x5300]
mov edx, 3
call fcn.0040400c
mov eax, dword [ebp - 0x5300]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
jmp 0x4ddbba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8fc]
cmp byte [eax + 0x47], 1
jne 0x4ddb31
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14e7c]
mov edx, eax
shl eax, 3
sub eax, edx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x15030]
cmp byte [edx + eax*8 + 0xe], 0
jne 0x4ddb31
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14e7c]
mov eax, dword [ebp - 4]
call fcn.004d22ec
mov ecx, 2
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.004d45a8
jmp 0x4ddbba
cmp dword [ebp + 8], 0x364
jne 0x4ddb84
lea edx, [ebp - 0x5310]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x5310]
lea edx, [ebp - 0x530c]
call fcn.004097fc
mov edx, dword [ebp - 0x530c]
lea eax, [ebp - 0x1c]
mov ecx, 0x4de164
call fcn.00403f98
jmp 0x4ddbba
lea edx, [ebp - 0x5318]
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453e58
mov eax, dword [ebp - 0x5318]
lea edx, [ebp - 0x5314]
call fcn.004097fc
mov edx, dword [ebp - 0x5314]
lea eax, [ebp - 0x1c]
mov ecx, 0x4de178
call fcn.00403f98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14770]
call fcn.00409718
test al, al
je 0x4ddc1e
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x531c]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x14770]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004dcfb4
mov edx, dword [ebp - 0x531c]
lea eax, [ebp - 0x10]
call fcn.00403d64
push 9
push 1
lea eax, [ebp - 0x5320]
push eax
mov eax, dword [0x506834]
mov edx, dword [eax + 0x14778]
mov ecx, 0x4de190
mov eax, dword [0x506834]
call fcn.004fc278
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x52c0]
call fcn.0040649a
mov eax, dword [0x5034b8]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x52c0]
call fcn.004069d1
call fcn.00402874
lea eax, [ebp - 0x52c0]
call fcn.0040670c
call fcn.00402874
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x5174]
call fcn.0040649a
mov eax, dword [0x5034b8]
mov byte [eax], 2
mov edx, 1
lea eax, [ebp - 0x5174]
call fcn.004069d1
call fcn.00402874
mov edx, dword [ebp + 8]
lea eax, [ebp - 0x5174]
call fcn.00406a08
call fcn.00402874
call fcn.00402a7c
mov eax, 0x152
call fcn.00402c9c
add eax, 0x159
mov dword [ebp - 0x18], eax
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
lea eax, [ebp - 0x5174]
call fcn.0040670c
call fcn.00402874
mov dword [ebp - 0x14], eax
push 0
lea edx, [ebp - 0x14]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
mov eax, 0x50
call fcn.00402c9c
add eax, 0x43
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x18], eax
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
push 0
lea edx, [ebp - 0x20]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
xor ebx, ebx
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x5174]
call fcn.00406a08
call fcn.00402874
cmp ebx, dword [ebp - 0x20]
jge 0x4ddde5
mov eax, dword [ebp - 0x20]
sub eax, ebx
cmp eax, 0x5000
jle 0x4ddd8c
lea eax, [ebp - 0x24]
push eax
lea edx, [ebp - 0x5028]
mov ecx, 0x5000
lea eax, [ebp - 0x52c0]
call fcn.0040653c
call fcn.00402874
jmp 0x4ddda8
lea edx, [ebp - 0x24]
push edx
mov ecx, eax
lea edx, [ebp - 0x5028]
lea eax, [ebp - 0x52c0]
call fcn.0040653c
call fcn.00402874
mov edx, dword [ebp - 0x24]
test edx, edx
jle 0x4dddbe
lea eax, [ebp - 0x5028]
mov cl, byte [ebp - 0x18]
add byte [eax], cl
inc eax
dec edx
jne 0x4dddb5
push 0
lea edx, [ebp - 0x5028]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
add ebx, dword [ebp - 0x24]
cmp ebx, dword [ebp - 0x20]
jl 0x4ddd5f
cmp dword [ebp + 8], 0x3ac
jne 0x4dde22
xor eax, eax
mov dword [ebp - 0x18], eax
mov edx, 0x364
lea eax, [ebp - 0x5174]
call fcn.00406a08
call fcn.00402874
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
cmp dword [ebp + 8], 0x3ca
jne 0x4ddef0
mov edx, 0x3ac
lea eax, [ebp - 0x5174]
call fcn.00406a08
call fcn.00402874
call fcn.00402a7c
mov eax, 0x152
call fcn.00402c9c
add eax, 0x159
mov dword [ebp - 0x18], eax
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
lea eax, [ebp - 0x5174]
call fcn.0040670c
call fcn.00402874
mov dword [ebp - 0x14], eax
push 0
lea edx, [ebp - 0x14]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
mov eax, 0x50
call fcn.00402c9c
add eax, 0x43
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x18], eax
push 0
lea edx, [ebp - 0x18]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
xor eax, eax
mov dword [ebp - 0x20], eax
push 0
lea edx, [ebp - 0x20]
mov ecx, 4
lea eax, [ebp - 0x5174]
call fcn.004065a0
call fcn.00402874
lea eax, [ebp - 0x52c0]
call fcn.00406604
call fcn.00402874
lea eax, [ebp - 0x5174]
call fcn.00406604
call fcn.00402874
push 0x3a2
mov ecx, 0x3a2
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004de1b8
push 0
mov eax, dword [ebp - 0xc]
call fcn.00404110
push eax
mov eax, dword [ebp - 0x10]
call fcn.00404110
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x4ddf8d
lea eax, [ebp - 0x28]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00404154
push 0
lea eax, [ebp - 0x5324]
mov ecx, 0x4de19c
mov edx, dword [ebp - 0x28]
call fcn.00403f98
mov eax, dword [ebp - 0x5324]
call fcn.00404110
mov edx, eax
mov ecx, 0x4de060
mov eax, dword [0x503418]
mov eax, dword [eax]
call fcn.00453ae8
jmp 0x4ddfa6
cmp dword [ebp + 8], 0x384
jle 0x4ddf9e
mov eax, dword [ebp - 0x10]
call fcn.00409764
mov eax, dword [ebp - 0x1c]
call fcn.00409764
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4de057
lea eax, [ebp - 0x5324]
mov edx, 0xa
call fcn.00403cf0
lea eax, [ebp - 0x52fc]
call fcn.00403ccc
lea eax, [ebp - 0x52f8]
mov edx, 3
call fcn.00403cf0
lea eax, [ebp - 0x52ec]
call fcn.00403ccc
lea eax, [ebp - 0x52e8]
mov edx, 3
call fcn.00403cf0
lea eax, [ebp - 0x52dc]
call fcn.00403ccc
lea eax, [ebp - 0x52d8]
mov edx, 3
call fcn.00403cf0
lea eax, [ebp - 0x52cc]
call fcn.00403ccc
lea eax, [ebp - 0x52c8]
mov edx, 2
call fcn.00403cf0
lea eax, [ebp - 0x28]
call fcn.00403ccc
lea eax, [ebp - 0x1c]
call fcn.00403ccc
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00403cf0
ret