Function at 0x4354d2
Capabilities:
Copy file
Move file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a80
push ebx
push esi
cmp dword [ebp + 8], 0
je 0x435fd9
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x435521
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax + 0x3c58], 0
je 0x43550f
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push dword [eax + 0x3c58]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov eax, dword [ebp + 8]
and dword [eax], 0
xorpd xmm0, xmm0
movlpd qword [ebp - 8], xmm0
mov dword [ebp - 0x10], 1
and dword [ebp - 0xc], 0
cmp dword [ebp + 0x10], 0
je 0x435ebd
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
test eax, eax
je 0x435ebd
cmp dword [ebp + 0xc], 0
je 0x435ea1
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 1]
test eax, eax
je 0x435ea1
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0x24]
test eax, eax
jle 0x435ea1
xorpd xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
jmp 0x435592
mov eax, dword [ebp - 0x18]
add eax, 1
mov ecx, dword [ebp - 0x14]
adc ecx, 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
push 0
push 0x30
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 1]
test eax, eax
je 0x435607
mov bl, byte [ebp - 0x18]
push 0
push 0x30
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax], bl
mov esi, dword [ebp - 8]
push 0
push 0x30
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax + 0x28], esi
push 0
push 0x30
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x24]
cdq
add eax, dword [ebp - 8]
adc edx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x435580
cmp dword [ebp - 4], 0
jl 0x435e88
jg 0x43561d
cmp dword [ebp - 8], 0
jbe 0x435e88
push dword [ebp + 0x10]
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.MSVCR100.dll_strcpy]
pop ecx
pop ecx
movzx eax, byte [ebp - 0xa18]
cmp eax, 0x7f
jl 0x4356ef
xorpd xmm0, xmm0
movlpd qword [ebp - 0xa20], xmm0
jmp 0x43566b
mov eax, dword [ebp - 0xa20]
add eax, 1
mov ecx, dword [ebp - 0xa1c]
adc ecx, 0
mov dword [ebp - 0xa20], eax
mov dword [ebp - 0xa1c], ecx
mov eax, dword [ebp - 0xa20]
movzx eax, byte [ebp + eax - 0xa18]
test eax, eax
je 0x4356ef
push 0
push 2
push dword [ebp - 0xa1c]
push dword [ebp - 0xa20]
call fcn.0045be60
mov dword [ebp - 0x4a68], eax
mov dword [ebp - 0x4a64], edx
mov eax, dword [ebp - 0x4a68]
or eax, dword [ebp - 0x4a64]
jne 0x4356cc
mov eax, dword [ebp - 0xa20]
movzx eax, byte [ebp + eax - 0xa18]
sub eax, 0x55
mov ecx, dword [ebp - 0xa20]
mov byte [ebp + ecx - 0xa18], al
jmp 0x4356ea
mov eax, dword [ebp - 0xa20]
movzx eax, byte [ebp + eax - 0xa18]
sub eax, 0x77
mov ecx, dword [ebp - 0xa20]
mov byte [ebp + ecx - 0xa18], al
jmp 0x43564d
lea eax, [ebp - 0xa18]
push eax
call fcn.00434ac1
lea eax, [ebp - 0xa18]
push eax
push 0x428a24
lea eax, [ebp - 0x818]
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
push 0x45c5e0
call dword [sym.imp.MSVCR100.dll__localtime64]
pop ecx
push eax
push 0x428a30
push 0xc
lea eax, [ebp - 0x818]
push eax
call dword [sym.imp.MSVCR100.dll_strlen]
pop ecx
lea eax, [ebp + eax - 0x818]
push eax
call dword [sym.imp.MSVCR100.dll_strftime]
add esp, 0x10
lea eax, [ebp - 0x818]
push eax
call fcn.00434ac1
push 1
lea eax, [ebp - 0x818]
push eax
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0xa18]
push eax
push 0x428a3c
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0xa18]
push eax
push 0x428a48
lea eax, [ebp - 0x618]
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0xa18]
push eax
push 0x428a54
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
xorpd xmm0, xmm0
movlpd qword [ebp - 0xa28], xmm0
jmp 0x4357ec
mov eax, dword [ebp - 0xa28]
add eax, 1
mov ecx, dword [ebp - 0xa24]
adc ecx, 0
mov dword [ebp - 0xa28], eax
mov dword [ebp - 0xa24], ecx
cmp dword [ebp - 0xa24], 0
jg 0x435d39
jl 0x435808
cmp dword [ebp - 0xa28], 3
ja 0x435d39
push 0x428ae0
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.MSVCR100.dll_fopen]
pop ecx
pop ecx
mov dword [ebp - 0xa2c], eax
cmp dword [ebp - 0xa2c], 0
je 0x435cea
xorpd xmm0, xmm0
movlpd qword [ebp - 0x4a40], xmm0
xorpd xmm0, xmm0
movlpd qword [ebp - 0xa38], xmm0
push 2
push 0
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_fseek]
add esp, 0xc
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_ftell]
pop ecx
cdq
mov dword [ebp - 0x4a40], eax
mov dword [ebp - 0x4a3c], edx
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_rewind]
pop ecx
cmp dword [ebp - 0x4a3c], 0
jl 0x435cd4
jg 0x4358a0
cmp dword [ebp - 0x4a40], 0x4000
jb 0x435cd4
push dword [ebp - 0xa2c]
push 0x4000
push 1
lea eax, [ebp - 0x4a38]
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 0x4000
jne 0x435cd4
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x4a38]
push eax
call dword [sym.imp.MSVCR100.dll_strcmp]
pop ecx
pop ecx
test eax, eax
jne 0x435cd4
cmp dword [ebp - 0xe24], 0
jl 0x435cd4
jg 0x435902
cmp dword [ebp - 0xe28], 0
jbe 0x435cd4
xorpd xmm0, xmm0
movlpd qword [ebp - 8], xmm0
xorpd xmm0, xmm0
movlpd qword [ebp - 0x4a48], xmm0
jmp 0x435937
mov eax, dword [ebp - 0x4a48]
add eax, 1
mov ecx, dword [ebp - 0x4a44]
adc ecx, 0
mov dword [ebp - 0x4a48], eax
mov dword [ebp - 0x4a44], ecx
push 0
push 0x30
push dword [ebp - 0x4a44]
push dword [ebp - 0x4a48]
call fcn.0045bd70
movzx eax, byte [ebp + eax - 0x4937]
test eax, eax
je 0x4359fe
push 0
push 0x30
push dword [ebp - 0x4a44]
push dword [ebp - 0x4a48]
call fcn.0045bd70
movzx eax, byte [ebp + eax - 0x4914]
test eax, eax
je 0x4359bc
push 0
push 0x30
push dword [ebp - 0x4a44]
push dword [ebp - 0x4a48]
call fcn.0045bd70
mov eax, dword [ebp + eax - 0x4910]
cdq
mov dword [ebp - 0x4a70], eax
mov dword [ebp - 0x4a6c], edx
mov eax, dword [ebp - 0x4a70]
cmp eax, dword [ebp - 8]
jne 0x4359bc
mov eax, dword [ebp - 0x4a6c]
cmp eax, dword [ebp - 4]
je 0x4359cf
mov dword [ebp - 0xa38], 1
and dword [ebp - 0xa34], 0
jmp 0x4359fe
push 0
push 0x30
push dword [ebp - 0x4a44]
push dword [ebp - 0x4a48]
call fcn.0045bd70
movzx eax, byte [ebp + eax - 0x4914]
cdq
add eax, dword [ebp - 8]
adc edx, dword [ebp - 4]
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x435919
mov eax, dword [ebp - 0xa38]
or eax, dword [ebp - 0xa34]
jne 0x435cd4
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xe28]
jne 0x435cd4
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xe24]
jne 0x435cd4
mov eax, dword [ebp - 0x4a40]
sub eax, 0x4000
mov ecx, dword [ebp - 0x4a3c]
sbb ecx, 0
push dword [ebp - 0xe24]
push dword [ebp - 0xe28]
push ecx
push eax
call fcn.0045be60
mov dword [ebp - 0x4a78], eax
mov dword [ebp - 0x4a74], edx
mov eax, dword [ebp - 0x4a78]
or eax, dword [ebp - 0x4a74]
jne 0x435cd4
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_rewind]
pop ecx
push dword [ebp - 0x4a40]
push 1
call dword [sym.imp.MSVCR100.dll_calloc]
pop ecx
pop ecx
mov dword [ebp - 0x4a4c], eax
cmp dword [ebp - 0x4a4c], 0
je 0x435c9f
push dword [ebp - 0xa2c]
push dword [ebp - 0x4a40]
push 1
push dword [ebp - 0x4a4c]
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x4a80], eax
mov dword [ebp - 0x4a7c], ecx
mov eax, dword [ebp - 0x4a80]
cmp eax, dword [ebp - 0x4a40]
jne 0x435c89
mov eax, dword [ebp - 0x4a7c]
cmp eax, dword [ebp - 0x4a3c]
jne 0x435c89
mov eax, dword [ebp - 0x4a40]
sub eax, 0x4000
mov ecx, dword [ebp - 0x4a3c]
sbb ecx, 0
mov edx, dword [ebp - 0x4a4c]
mov dword [edx + 0x3c18], eax
mov dword [edx + 0x3c1c], ecx
push dword [ebp - 0xe24]
push dword [ebp - 0xe28]
push dword [ebp - 0xe1c]
push dword [ebp - 0xe20]
call fcn.0045bdb0
mov ecx, dword [ebp - 0x4a4c]
mov dword [ecx + 0x3c20], eax
mov dword [ecx + 0x3c24], edx
lea eax, [ebp - 0xa18]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x4a4c]
push eax
push dword [ebp + 8]
call fcn.00435069
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x435c40
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_fclose]
pop ecx
push dword [ebp - 0x4a4c]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
and dword [ebp - 0x4a4c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov byte [eax + 0x3c00], 1
cmp dword [ebp - 0xa24], 0
jl 0x435bc8
jg 0x435bad
cmp dword [ebp - 0xa28], 0
jbe 0x435bc8
push dword [ebp + 0x10]
push 0x428ae4
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
call fcn.004303ff
push 0x100
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x3100
push eax
call dword [sym.imp.MSVCR100.dll_memset]
add esp, 0xc
push 0x100
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x3200
push eax
call dword [sym.imp.MSVCR100.dll_memset]
add esp, 0xc
push 0x100
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x3300
push eax
call dword [sym.imp.MSVCR100.dll_memset]
add esp, 0xc
push 0x800
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x3400
push eax
call dword [sym.imp.MSVCR100.dll_memset]
add esp, 0xc
xor eax, eax
inc eax
xor edx, edx
jmp 0x435ff4
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_fclose]
pop ecx
push dword [ebp - 0x4a4c]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
and dword [ebp - 0x4a4c], 0
lea eax, [ebp - 0xa18]
push eax
push 0x428b10
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
call fcn.004303ff
xor eax, eax
xor edx, edx
jmp 0x435ff4
push dword [ebp - 0x4a4c]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
and dword [ebp - 0x4a4c], 0
jmp 0x435cd4
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_fclose]
pop ecx
lea eax, [ebp - 0xa18]
push eax
push 0x428b10
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
call fcn.004303ff
xor eax, eax
xor edx, edx
jmp 0x435ff4
push dword [ebp - 0xa2c]
call dword [sym.imp.MSVCR100.dll_fclose]
pop ecx
xorpd xmm0, xmm0
movlpd qword [ebp - 0x10], xmm0
push 0xb
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
je 0x435d32
push 0xb
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x618]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 0xb
lea eax, [ebp - 0x618]
push eax
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
jmp 0x435d34
jmp 0x435d39
jmp 0x4357ce
mov eax, dword [ebp - 0x10]
or eax, dword [ebp - 0xc]
jne 0x435d5c
push dword [ebp + 0x10]
push 0x428b44
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
call fcn.004303ff
push 0x4000
push 1
call dword [sym.imp.MSVCR100.dll_calloc]
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x435e86
xorpd xmm0, xmm0
movlpd qword [ebp - 0x4a58], xmm0
jmp 0x435da8
mov eax, dword [ebp - 0x4a58]
add eax, 1
mov ecx, dword [ebp - 0x4a54]
adc ecx, 0
mov dword [ebp - 0x4a58], eax
mov dword [ebp - 0x4a54], ecx
push 0
push 0x30
push dword [ebp - 0x4a54]
push dword [ebp - 0x4a58]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 1]
test eax, eax
je 0x435e5a
mov bl, byte [ebp - 0x4a58]
push 0
push 0x30
push dword [ebp - 0x4a54]
push dword [ebp - 0x4a58]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax], bl
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax + 0x3c10]
push 0
push 0x30
push dword [ebp - 0x4a54]
push dword [ebp - 0x4a58]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax + 0x28], esi
mov eax, dword [ebp + 8]
mov esi, dword [eax]
push 0
push 0x30
push dword [ebp - 0x4a54]
push dword [ebp - 0x4a58]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x24]
cdq
add eax, dword [esi + 0x3c10]
adc edx, dword [esi + 0x3c14]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [ecx + 0x3c10], eax
mov dword [ecx + 0x3c14], edx
jmp 0x435d8a
push 0x3000
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x100
push eax
call dword [sym.imp.MSVCR100.dll_memcpy]
add esp, 0xc
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.MSVCR100.dll_strcpy]
pop ecx
pop ecx
jmp 0x435e9f
push 0x428b6c
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
call fcn.004303ff
jmp 0x435eb8
push 0x428b6c
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
call fcn.004303ff
jmp 0x435fd7
push 0x4000
push 1
call dword [sym.imp.MSVCR100.dll_calloc]
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x435fd7
xorpd xmm0, xmm0
movlpd qword [ebp - 0x4a60], xmm0
jmp 0x435f09
mov eax, dword [ebp - 0x4a60]
add eax, 1
mov ecx, dword [ebp - 0x4a5c]
adc ecx, 0
mov dword [ebp - 0x4a60], eax
mov dword [ebp - 0x4a5c], ecx
push 0
push 0x30
push dword [ebp - 0x4a5c]
push dword [ebp - 0x4a60]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 1]
test eax, eax
je 0x435fbb
mov bl, byte [ebp - 0x4a60]
push 0
push 0x30
push dword [ebp - 0x4a5c]
push dword [ebp - 0x4a60]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax], bl
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov esi, dword [eax + 0x3c10]
push 0
push 0x30
push dword [ebp - 0x4a5c]
push dword [ebp - 0x4a60]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax + 0x28], esi
mov eax, dword [ebp + 8]
mov esi, dword [eax]
push 0
push 0x30
push dword [ebp - 0x4a5c]
push dword [ebp - 0x4a60]
call fcn.0045bd70
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x24]
cdq
add eax, dword [esi + 0x3c10]
adc edx, dword [esi + 0x3c14]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [ecx + 0x3c10], eax
mov dword [ecx + 0x3c14], edx
jmp 0x435eeb
push 0x3000
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0x100
push eax
call dword [sym.imp.MSVCR100.dll_memcpy]
add esp, 0xc
jmp 0x435ff0
push 0x428abc
push 0x45c9c0
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
call fcn.004303ff
xor eax, eax
xor edx, edx
pop esi
pop ebx
leave
ret 0xc