Function at 0x201378
Capabilities:
Copy file
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
push 0x133f
sub esp, 0x70
push fcn.00201378
xor esi, esi
xor edi, edi
mov ecx, 0x4f
push esi
dec ecx
jne 0x201394
push 0x104
lea ebx, [ebp - 0x19c]
push ebx
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
fldcw word [ebp - 0x10]
mov eax, 1
mov ecx, 0xffffffff
lea ebx, [ebp - 0x19c]
call fcn.0020a200
mov edx, 0x20ce0c
call fcn.0020a15c
xchg ecx, eax
call fcn.002067bc
sub eax, ecx
mov esi, eax
mov eax, 1
mov ecx, 0xffffffff
lea ebx, [ebp - 0x19c]
call fcn.0020a200
mov edx, 0x20ce14
call fcn.0020a15c
xchg ecx, eax
call fcn.002067bc
add eax, ecx
mov edi, eax
mov eax, 0xffffffff
lea ebx, [ebp - 0x19c]
call fcn.0020a200
mov edx, 0x20ce1c
call fcn.0020a15c
call fcn.002067bc
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], edi
jge 0x2014a9
lea ebx, [ebp - 0x19c]
call fcn.0020a200
mov ecx, edi
mov eax, esi
sub eax, edi
add eax, 1
call fcn.00207fdf
lea ebx, [ebp - 0x1ac]
call fcn.0020a0df
mov edx, dword [ebp - 0x1ac]
call fcn.0020a0c8
mov eax, 1
mov edx, 0x20ce24
call fcn.0020a15c
call fcn.002067bc
mov edi, eax
cmp edi, 0
jle 0x2014a9
mov edx, dword [ebp - 0x1ac]
call fcn.0020a0c8
mov eax, 1
add eax, edi
mov ecx, eax
mov eax, 0x7fffffff
call fcn.00207fdf
lea ebx, [ebp - 0x1ac]
call fcn.0020a0df
xor eax, eax
mov edx, dword [ebp - 0x1ac]
call fcn.0020a0c8
mov dword [ebp - 0x30], eax
call fcn.0020a094
cmp eax, dword [ebp - 0x30]
jne 0x2014dc
mov edx, 0x20ce2c
call fcn.0020a15c
lea ebx, [ebp - 0x1ac]
call fcn.0020a0df
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
call fcn.0020a0c8
mov edx, 0x20ce34
call fcn.0020a15c
call fcn.0020af60
mov ebx, dword [ebp + 8]
call fcn.0020a0df
push 0
mov eax, 0x22
call fcn.002050f7
call fcn.002050a8
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
call fcn.0020a0c8
call fcn.0020af60
mov edx, 0x20ce44
call fcn.0020a15c
call fcn.0020af60
push 0
mov eax, 0x22
call fcn.002050f7
call fcn.002050a8
call fcn.0020af60
lea ebx, [ebp - 0x1b0]
call fcn.0020a0df
mov edx, dword [ebp - 0x1b0]
call fcn.0020a0c8
lea ebx, [ebp - 0x1b4]
call fcn.0020a0df
mov edx, 0x20ce58
call fcn.0020a15c
lea ebx, [ebp - 0x1b8]
call fcn.0020a0df
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
call fcn.0020a0c8
mov ecx, 1
mov eax, 3
call fcn.00207fdf
lea ebx, [ebp - 0x1bc]
call fcn.0020a0df
push 2
lea ebx, [ebp - 0x1bc]
call fcn.0020a4c5
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeA]
fldcw word [ebp - 0x10]
pop dword [ebp - 0x30]
cmp eax, dword [ebp - 0x30]
jne 0x20165c
push 0
push 0
xor eax, eax
push eax
mov edx, dword [ebp - 0x1bc]
call fcn.0020a0c8
mov edx, 0x20ce8c
call fcn.0020a15c
call fcn.0020af60
lea ebx, [esp + 8]
call fcn.00209a99
mov ebx, dword [ebp + 8]
mov edx, dword [ebx]
call fcn.0020a0c8
mov edx, 0x20ce78
call fcn.0020a15c
call fcn.0020af60
lea ebx, [esp + 8]
call fcn.00209a99
call dword [sym.imp.KERNEL32.DLL_CopyFileA]
mov ebx, eax
pop eax
call fcn.0020890a
pop eax
call fcn.0020890a
mov eax, ebx
fldcw word [ebp - 0x10]
xor ecx, ecx
mov edx, 0x20cea0
call fcn.0020a15c
mov edx, dword [ebp - 0x1bc]
call fcn.0020a0c8
call fcn.0020af60
mov eax, 1
or eax, 0x8000
call fcn.00208360
call fcn.00204fcc
jmp 0x201673
mov ebx, dword [ebp + 8]
push ebx
lea ebx, [ebp - 0x1b0]
push ebx
lea ebx, [ebp - 0x1b8]
push ebx
call fcn.002024fc
xor eax, eax
mov edx, dword [ebp - 0x1b4]
call fcn.0020a0c8
mov ecx, 1
xchg ecx, eax
call fcn.00208360
call fcn.00204fcc
mov dword [ebp - 0x1c0], eax
call fcn.00209f9c
mov eax, dword [ebp - 0x98]
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret 4