Function at 0x4015f0
Capabilities:
Copy file
Create directory

Disassembly:
sub esp, 0x530
mov eax, dword [0x428510]
xor eax, esp
mov dword [esp + 0x52c], eax
mov ax, word [0x41d3d8]
push ebx
push ebp
push esi
mov word [esp + 0xc], ax
xor esi, esi
mov al, byte [0x41d3da]
push edi
push 0x42f760
mov byte [esp + 0x16], al
call fcn.004041f0
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esp, 4
test eax, eax
jne 0x401799
push 0x42f760
lea eax, [esp + 0x3c]
push str.__s__is_not_exist._creating...
push eax
call fcn.004032d0
add esp, 0xc
push esi
push 0x42f760
call edi
test eax, eax
jne 0x40176d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x401681
lea edi, [esp + 0x38]
sub edx, esi
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x401690
mov ecx, edx
lea eax, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
mov esi, 1
call fcn.00404490
add esp, 4
lea eax, [esp + 0x14]
push 0
push 0
push eax
push 0x400
push ebx
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x4016ee
push dword [esp + 0x14]
call fcn.00404490
add esp, 4
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x42f880
mov ebp, esi
call fcn.004041f0
add esp, 4
test eax, eax
jne 0x4017cf
push 0x42f880
lea eax, [esp + 0x3c]
push str.__s__is_not_exist._creating...
push eax
call fcn.004032d0
add esp, 0xc
push 0
push 0x42f880
call edi
test eax, eax
jne 0x4017a2
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x401751
lea edi, [esp + 0x38]
sub edx, esi
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x401760
jmp 0x4019e8
lea edi, [esp + 0x38]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401772
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404490
mov ebx, dword [esp + 0x18]
add esp, 4
jmp 0x4016ee
mov ebx, dword [esp + 0x14]
jmp 0x4016f4
lea edi, [esp + 0x38]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4017a7
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404490
add esp, 4
mov esi, ebp
test ebp, ebp
jne 0x401a03
test esi, esi
jne 0x401a3b
lea eax, [esp + 0x10]
push eax
push 0x42d760
call fcn.00407f98
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, eax
add esp, 8
test esi, esi
je 0x4018a4
nop dword [eax]
push esi
push 0x42f760
lea eax, [esp + 0x140]
push str._s_s
push eax
call fcn.004032d0
push esi
lea eax, [esp + 0x24c]
push str.elisp_s
push eax
call fcn.004032d0
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0x5c]
push str.Copying___s__to___s__...
push eax
call fcn.004032d0
add esp, 0x2c
lea eax, [esp + 0x138]
push 0
push eax
lea eax, [esp + 0x240]
push eax
call ebx
test eax, eax
je 0x4019ab
lea edi, [esp + 0x38]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401870
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404470
lea eax, [esp + 0x14]
push eax
push 0
call fcn.00407f98
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x401800
lea eax, [esp + 0x10]
push eax
push 0x42e760
call fcn.00407f98
mov esi, eax
add esp, 8
test esi, esi
je 0x401964
push esi
push 0x42f760
lea eax, [esp + 0x140]
push str._s_s
push eax
call fcn.004032d0
push esi
lea eax, [esp + 0x24c]
push str.elisp_s
push eax
call fcn.004032d0
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0x5c]
push str.Copying___s__to___s__...
push eax
call fcn.004032d0
add esp, 0x2c
lea eax, [esp + 0x138]
push 0
push eax
lea eax, [esp + 0x240]
push eax
call ebx
test eax, eax
je 0x401a56
lea edi, [esp + 0x38]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401930
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404470
lea eax, [esp + 0x14]
push eax
push 0
call fcn.00407f98
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4018c0
cmp dword [0x428e20], 0
je 0x401bb5
mov ecx, str.Default
mov eax, 0x42b760
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401ab1
test dl, dl
je 0x4019a4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401ab1
add eax, 2
add ecx, 2
test dl, dl
jne 0x401980
xor eax, eax
jmp 0x401ab6
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4019d0
lea edi, [esp + 0x38]
sub edx, esi
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4019e0
mov ecx, edx
lea eax, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00404490
add esp, 4
push 0
push 0
lea eax, [esp + 0x1c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0x400
push ebx
push 0
push 0x1300
call eax
test eax, eax
je 0x401a3b
push dword [esp + 0x14]
call fcn.00404490
mov eax, dword [sym.imp.KERNEL32.dll_LocalFree]
add esp, 4
push dword [esp + 0x14]
call eax
xor eax, eax
mov ecx, dword [esp + 0x53c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00404cba
add esp, 0x530
ret
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x401a78
lea edi, [esp + 0x38]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x401a86
mov ecx, edx
lea eax, [esp + 0x38]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00404490
push ebx
call fcn.00401d00
add esp, 8
jmp 0x401a3b
sbb eax, eax
or eax, 1
test eax, eax
je 0x401bb5
lea eax, [esp + 0x10]
push eax
push 0x42b760
call fcn.00407f98
mov esi, eax
add esp, 8
test esi, esi
je 0x401bb5
mov ebp, 0x411
nop
push esi
push 0x42f760
lea eax, [esp + 0x140]
push str._s_s
push eax
call fcn.004032d0
push esi
lea eax, [esp + 0x34c]
push str.contrib_s
push eax
call fcn.004032d0
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x358]
push eax
lea eax, [esp + 0x5c]
push str.Copying___s__to___s__...
push eax
call fcn.004032d0
add esp, 0x2c
lea eax, [esp + 0x138]
push 0
push eax
lea eax, [esp + 0x340]
push eax
call ebx
test eax, eax
je 0x401c7e
lea edi, [esp + 0x38]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401b50
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404470
cmp word [0x428f48], bp
mov ecx, str.__UNOFFICIAL_package___s__is_installed.
mov eax, 0x41d69c
cmovne eax, ecx
lea ecx, [esp + 0x33c]
push ecx
push eax
lea eax, [esp + 0x44]
push eax
call fcn.004032d0
lea eax, [esp + 0x48]
push eax
call fcn.00404490
lea eax, [esp + 0x24]
push eax
push 0
call fcn.00407f98
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x401ae0
lea eax, [esp + 0x10]
push eax
push 0x42c760
call fcn.00407f98
mov esi, eax
add esp, 8
test esi, esi
je 0x401c74
push esi
push 0x42f880
lea eax, [esp + 0x140]
push str._s_s
push eax
call fcn.004032d0
push esi
lea eax, [esp + 0x44c]
push str.bin_s
push eax
call fcn.004032d0
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0x458]
push eax
lea eax, [esp + 0x5c]
push str.Copying___s__to___s__...
push eax
call fcn.004032d0
add esp, 0x2c
lea eax, [esp + 0x138]
push 0
push eax
lea eax, [esp + 0x440]
push eax
call ebx
test eax, eax
je 0x401cbd
lea edi, [esp + 0x38]
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401c40
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x38]
push eax
call fcn.00404470
lea eax, [esp + 0x14]
push eax
push 0
call fcn.00407f98
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x401bd1
mov eax, 1
jmp 0x401a3d
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x401ca0
lea edi, [esp + 0x38]
sub edx, esi
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x401cb0
jmp 0x401a8e
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push str.fail._0x_08x_
push eax
call fcn.004032d0
lea edx, [esp + 0x24]
add esp, 0xc
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x401ce0
lea edi, [esp + 0x38]
sub edx, esi
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x401cf0
jmp 0x401a8e