Function at 0x40dc1b
Capabilities:
Copy file
Get common file path
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x28c]
sub esp, 0x30c
mov eax, dword [0x43fb20]
xor eax, ebp
mov dword [ebp + 0x288], eax
push ebx
push esi
push edi
push 0x80
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x78]
push str.Fonts
push eax
call fcn.0041a04c
mov esi, 0x443b98
push esi
call fcn.0041970d
add esp, 0xc
xor ebx, ebx
cmp word [eax*2 + 0x443b96], 0x5c
jne 0x40dc80
push esi
call fcn.0041970d
pop ecx
mov word [eax*2 + 0x443b96], bx
lea eax, [ebp - 0x7c]
push eax
push str.EUDC936
push 0x80000001
mov dword [ebp - 0x80], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
push esi
lea eax, [ebp + 0x188]
push 0x437e50
push eax
call fcn.0041a16c
lea eax, [ebp + 0x188]
push ebx
push eax
call fcn.0041a415
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
add esp, 0x14
test eax, eax
jne 0x40dd0d
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x88]
push 0x437e50
push eax
call fcn.0041a16c
add esp, 0xc
push ebx
lea eax, [ebp + 0x88]
push eax
lea eax, [ebp + 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40dd0d
push 0xc
push 0x437e64
xor eax, eax
inc eax
push eax
push ebx
push 0x437e74
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
call edi
push esi
lea eax, [ebp + 0x188]
push 0x437e7c
push eax
call fcn.0041a16c
lea eax, [ebp + 0x188]
push ebx
push eax
call fcn.0041a415
add esp, 0x14
test eax, eax
jne 0x40dd7d
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x88]
push 0x437e7c
push eax
call fcn.0041a16c
add esp, 0xc
push ebx
lea eax, [ebp + 0x88]
push eax
lea eax, [ebp + 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40dd7d
push 0xc
push str.SO.
xor eax, eax
inc eax
push eax
push ebx
push 0x437ea0
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
call edi
push esi
lea eax, [ebp + 0x188]
push 0x437ea8
push eax
call fcn.0041a16c
lea eax, [ebp + 0x188]
push ebx
push eax
call fcn.0041a415
add esp, 0x14
test eax, eax
jne 0x40dded
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x88]
push 0x437ea8
push eax
call fcn.0041a16c
add esp, 0xc
push ebx
lea eax, [ebp + 0x88]
push eax
lea eax, [ebp + 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40dded
push 0xc
push 0x437ebc
xor eax, eax
inc eax
push eax
push ebx
push 0x437ecc
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
call edi
push esi
mov esi, 0x437ee0
lea eax, [ebp + 0x188]
push esi
push eax
call fcn.0041a16c
lea eax, [ebp + 0x188]
push ebx
push eax
call fcn.0041a415
add esp, 0x14
test eax, eax
jne 0x40de5a
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x88]
push esi
push eax
call fcn.0041a16c
add esp, 0xc
push ebx
lea eax, [ebp + 0x88]
push eax
lea eax, [ebp + 0x188]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40de5a
push 0xc
push str.wiSO.
xor eax, eax
inc eax
push eax
push ebx
push str.wiSO_
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
call edi
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x288]
mov eax, dword [ebp - 0x80]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00418c19
add ebp, 0x28c
leave
ret