Function at 0x419610
Capabilities:
Copy file
Get disk information
Get geographical location
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
push edi
mov dword [ebp - 0x10c], 0
mov eax, dword [0x55c92c]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x144], 0x37045
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov esi, eax
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetTapePosition]
cmp esi, eax
jne 0x419681
xor ecx, ecx
jne 0x419681
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0x10c]
jne 0x4196c0
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x10c]
jne 0x4196c0
mov esi, dword [ebp - 0x10c]
sub esi, 0x452d6
mov ecx, 0x7babd
sub ecx, dword [ebp - 0x10c]
or esi, ecx
movzx edx, word [ebp - 0xac]
mov edi, 0x4edb3
sub edi, edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointA]
add edi, eax
or esi, edi
mov dword [ebp - 0x10c], esi
jmp 0x419724
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
lea esi, [ecx + eax + 0x35e7]
and esi, dword [ebp - 0x10c]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edx, dword [ebp - 0x10c]
sub edx, eax
movzx eax, word [ebp - 0xac]
sub edx, eax
and esi, edx
movzx ecx, word [ebp - 0xac]
mov edx, dword [ebp - 0x10c]
lea eax, [edx + ecx + 0x15aa1]
or esi, eax
mov ecx, dword [ebp - 0x10c]
add ecx, 0x1fd8e
or esi, ecx
xor edx, edx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetLocaleInfoW]
shl eax, 0x2b
mov ecx, dword [ebp - 0x10c]
sub ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x10c]
lea ecx, [ecx + edx + 0xad2b]
and eax, ecx
mov esi, eax
xor edi, edi
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
xor edx, edx
add eax, dword [ebp - 0x70]
adc edx, dword [ebp - 0x6c]
or esi, eax
or edi, edx
mov word [ebp - 0xac], si
movzx eax, word [ebp - 0xac]
movzx ecx, word [ebp - 0xac]
cmp eax, ecx
jne 0x4197fa
cmp dword [ebp - 0x10c], 0x1ab48
jne 0x4197fa
mov edx, dword [ebp - 0x10c]
and edx, dword [ebp - 0x10c]
mov esi, edx
xor edi, edi
mov ebx, dword [ebp - 0x10c]
add ebx, 0x23848
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesA]
sub ebx, eax
xor eax, eax
add ebx, dword [ebp - 0x70]
adc eax, dword [ebp - 0x6c]
and esi, ebx
and edi, eax
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthW]
movzx ecx, word [ebp - 0xac]
lea edx, [eax + ecx + 0x7ff5e]
sub edx, dword [ebp - 0x10c]
movzx eax, word [ebp - 0xac]
lea ecx, [edx + eax - 0x1d40b]
xor edx, edx
and esi, ecx
and edi, edx
mov word [ebp - 0xac], si
jmp 0x419846
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov esi, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasA]
mov edi, eax
sub edi, dword [ebp - 0x10c]
push 0
call dword [sym.imp.KERNEL32.dll_AddAtomA]
movzx eax, ax
add edi, dword [ebp - 0x10c]
add eax, edi
add eax, dword [ebp - 0x10c]
and eax, 0x5fdd8
or esi, eax
mov dword [ebp - 0x10c], esi
movzx esi, word [ebp - 0xac]
or esi, dword [ebp - 0x10c]
or esi, 0x6bfd2
mov edi, dword [ebp - 0x10c]
add edi, dword [ebp - 0x10c]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
mov ebx, eax
push 0
call dword [sym.imp.KERNEL32.dll_SetEvent]
sub ebx, eax
movzx ecx, word [ebp - 0xac]
lea edx, [ebx + ecx + 0xc632]
and edi, edx
or esi, edi
mov dword [ebp - 0x10c], esi
cmp dword [ebp - 0x10c], 0x2d8ce
jne 0x4198cd
xor eax, eax
je 0x4198cd
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CopyFileExA]
cmp eax, 0xb25a
jae 0x4198cd
movzx ecx, byte [ebp - 0x81]
cmp ecx, 0x2d58b
je 0x4198d1
xor edx, edx
je 0x4198ee
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetThreadPriorityBoost]
sub eax, dword [ebp - 0x10c]
add eax, 0x1648b
mov dword [ebp - 0x10c], eax
jmp 0x419930
mov eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0x10c]
or eax, 0xf97c
or eax, 0x1d804
or eax, dword [ebp - 0x10c]
or eax, dword [ebp - 0x10c]
mov ecx, eax
xor esi, esi
movzx eax, word [ebp - 0xac]
cdq
mov edi, dword [ebp - 0x70]
sub edi, eax
mov eax, dword [ebp - 0x6c]
sbb eax, edx
or ecx, edi
or esi, eax
mov byte [ebp - 0x81], cl
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20