Function at 0x40e100
Capabilities:
Copy file
Move file

Disassembly:
sub esp, 0x630
mov eax, dword [0x445750]
xor eax, esp
mov dword [esp + 0x62c], eax
mov eax, dword [esp + 0x638]
push ebx
push ebp
mov ebp, dword [esp + 0x644]
push esi
push edi
mov dword [esp + 0x10], ebp
xor edx, edx
lea esp, [esp]
mov bl, byte [edx + 0x446ff0]
mov byte [esp + edx + 0x33c], bl
inc edx
test bl, bl
jne 0x40e130
mov esi, ecx
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40e144
sub ecx, esi
lea edi, [esp + 0x33c]
mov edx, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40e157
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
nop
mov dl, byte [esp + ecx + 0x33c]
mov byte [esp + ecx + 0x43c], dl
inc ecx
test dl, dl
jne 0x40e170
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e185
lea edi, [esp + 0x43c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40e196
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebp, ebp
je 0x40e1ff
xor eax, eax
jmp 0x40e1c0
mov cl, byte [eax + 0x446ff0]
mov byte [esp + eax + 0x53c], cl
inc eax
test cl, cl
jne 0x40e1c0
mov eax, ebp
mov edx, ebp
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e1d6
lea edi, [esp + 0x53c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40e1e7
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x440]
push ecx
call fcn.00420f08
mov ebx, eax
add esp, 8
test ebx, ebx
jg 0x40e222
or eax, 0xffffffff
jmp 0x40e32b
xor ebp, ebp
cmp dword [esp + 0x10], 0
je 0x40e309
xor eax, eax
mov cl, byte [esp + eax + 0x33c]
mov byte [esp + eax + 0x13c], cl
inc eax
test cl, cl
jne 0x40e231
lea eax, [esp + 0x38]
mov edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e250
lea edi, [esp + 0x13c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40e261
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
jmp 0x40e280
mov cl, byte [esp + eax + 0x53c]
mov byte [esp + eax + 0x23c], cl
inc eax
test cl, cl
jne 0x40e280
lea eax, [esp + 0x38]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e2a0
lea edi, [esp + 0x23c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40e2b1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x644]
and ecx, 3
sub eax, 1
rep movsb byte es:[edi], byte [esi]
je 0x40e2f3
sub eax, 1
jne 0x40e309
push eax
lea edx, [esp + 0x240]
push edx
lea eax, [esp + 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
jmp 0x40e309
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x140]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea eax, [esp + 0x14]
push eax
push ebx
inc ebp
call fcn.00421038
add esp, 8
test eax, eax
je 0x40e224
push ebx
call fcn.00420e7a
add esp, 4
mov eax, ebp
mov ecx, dword [esp + 0x63c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041e904
add esp, 0x630
ret