Function at 0x4057a0
Capabilities:
Copy file
Identify system language via api
Write file on windows

Disassembly:
sub esp, 0x64
mov byte [0x430f68], 0
push ebx
push ebp
push esi
push edi
mov ebp, edx
mov edi, ecx
call fcn.004035f0
test eax, eax
jne 0x405a1a
mov edx, 0x430f68
mov esi, edi
sub edx, edi
jmp 0x4057d0
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [edx + esi - 1], al
test al, al
jne 0x4057d0
mov ecx, 0x430f68
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4057e5
sub ecx, edx
push 4
push 0x4272f8
lea eax, [ecx + 0x430f63]
push eax
call fcn.00410e9d
add esp, 0xc
test eax, eax
je 0x40582f
mov ecx, 0x430f68
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405810
sub ecx, edx
push str._HD.exe
lea eax, [ecx + 0x430f64]
push eax
call fcn.00401180
add esp, 8
jmp 0x405842
push edi
push str._s_HD.exe
push 0x430f68
call fcn.00401180
add esp, 0xc
push 0x58
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.0040c260
mov eax, dword [0x430d70]
add esp, 0xc
mov dword [esp + 0x18], 0x58
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], 0x104
call fcn.004014d0
mov dword [esp + 0x24], 0x427314
test eax, eax
jne 0x405885
mov dword [esp + 0x24], str.Executables__.exe_
push 0x430f68
push 0x42c4e0
push str._s_s
call fcn.004015c0
add esp, 0xc
mov dword [esp + 0x34], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x44], 0x42c4e0
mov dword [esp + 0x54], 0x427350
mov dword [esp + 0x4c], 0xa20006
push eax
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
test eax, eax
je 0x405a1a
mov ax, word [esp + 0x52]
test ax, ax
je 0x4058ed
movzx ecx, ax
mov eax, dword [esp + 0x34]
dec eax
add eax, ecx
push 0x4272f8
push eax
call fcn.00401180
add esp, 8
push 0
push dword [esp + 0x38]
mov ecx, edi
call fcn.00405df0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
push dword [esp + 0x4c]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x4059ef
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0
push 0x25c6dc
push esi
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [esp + 0x14]
push 0
push eax
push 9
push str._hd3_.dll
push esi
call ebx
test eax, eax
je 0x4059e8
test ebp, ebp
je 0x4059e8
push 0
push 0
push 0x95590
push esi
call edi
push 0
lea eax, [esp + 0x18]
push eax
push 3
push 0x426cc8
push esi
call ebx
test eax, eax
je 0x4059e8
push 0
push 0
push 0x955b7
push esi
call edi
push 0
lea eax, [esp + 0x18]
push eax
push 1
push 0x426ccc
push esi
call ebx
test eax, eax
je 0x4059e8
push 0
push 0
push 0x955b8
push esi
call edi
mov ecx, ebp
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4059b4
sub ecx, edx
cmp ecx, 0x7f
jbe 0x4059c9
mov ecx, 0x7f
jmp 0x4059d9
mov ecx, ebp
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4059d0
sub ecx, edx
push 0
lea eax, [esp + 0x18]
push eax
lea eax, [ecx + 1]
push eax
push ebp
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x34]
call fcn.00401250
mov edx, 0x430f68
sub edx, eax
nop
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x405a00
mov eax, 0x430f68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64
ret