Function at 0x401d00
Capabilities:
Copy file
Create directory

Disassembly:
sub esp, 0x620
mov eax, dword [0x4181fc]
xor eax, esp
mov dword [esp + 0x61c], eax
push ebx
push ebp
push esi
mov esi, ecx
push 0x208
xor ebx, ebx
lea ebp, [esi + 4]
push ebx
push ebp
mov dword [esp + 0x18], esi
call fcn.00405490
add esp, 0xc
push 0x206
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push ebp
call fcn.004052b8
add esp, 8
cmp byte [eax], bl
je 0x401d50
mov byte [eax + 1], bl
lea edx, [esi + 0x20c]
mov eax, ebp
sub edx, ebp
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x401d60
push 0x207
lea eax, [esp + 0x425]
push ebx
push eax
mov byte [esp + 0x42c], bl
call fcn.00405490
lea edx, [esp + 0x42c]
add esp, 0xc
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x401d92
lea eax, [esp + 0x420]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x401da4
mov ecx, dword [str.crash_]
mov dx, word [0x41426c]
mov dword [eax], ecx
mov cl, byte [0x41426e]
mov word [eax + 4], dx
push ebx
lea edx, [esp + 0x424]
push edx
mov byte [eax + 6], cl
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x207
lea eax, [esp + 0x15]
push ebx
push eax
mov byte [esp + 0x1c], bl
call fcn.00405490
lea edx, [esp + 0x1c]
add esp, 0xc
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x401df6
mov eax, dword [0x4197dc]
mov edx, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401e07
push edi
lea edi, [esp + 0x14]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x401e16
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]
push 0x207
lea ecx, [esp + 0x221]
push ebx
push ecx
mov byte [esp + 0x228], bl
call fcn.00405490
add esp, 0xc
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x424]
mov byte [esp + eax + 0x21c], cl
inc eax
cmp cl, bl
jne 0x401e50
lea eax, [esp + 0x21c]
dec eax
jmp 0x401e70
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x401e70
mov edx, dword [str.crash.dmp]
mov ecx, dword [0x414260]
mov dword [eax], edx
mov dx, word [0x414264]
mov dword [eax + 4], ecx
mov word [eax + 8], dx
push ebx
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x207
lea edx, [esp + 0x221]
push ebx
push edx
mov byte [esp + 0x228], bl
call fcn.00405490
lea edx, [esp + 0x228]
add esp, 0xc
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x401ed0
mov eax, dword [0x4197e0]
mov edx, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401ee1
lea edi, [esp + 0x21c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x401ef2
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x207
and ecx, 3
lea eax, [esp + 0x19]
push ebx
rep movsb byte es:[edi], byte [esi]
push eax
mov byte [esp + 0x20], bl
call fcn.00405490
add esp, 0xc
xor eax, eax
pop edi
mov cl, byte [esp + eax + 0x420]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x401f24
lea eax, [esp + 0x10]
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x401f40
mov ecx, dword [str.errorlog.txt]
mov edx, dword [0x414250]
mov dword [eax], ecx
mov ecx, dword [0x414254]
mov dword [eax + 4], edx
mov dl, byte [0x414258]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x21c]
push ecx
call fcn.004019c0
mov esi, dword [esp + 0x14]
add esp, 8
lea edx, [esp + 0x420]
push edx
mov ecx, esi
call fcn.004010c0
mov ecx, dword [esp + 0x628]
mov dword [esi + 0x61c], eax
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00405477
add esp, 0x620
ret