Function at 0x140001f40
Capabilities:
Get geographical location
Read .ini file

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x430]
sub rsp, 0x530
mov rax, qword [0x14004f678]
xor rax, rsp
mov qword [rbp + 0x420], rax
mov r14, rcx
mov rbx, qword [rbp + 0x480]
call fcn.140005980
test eax, eax
jne 0x140001f8f
xor eax, eax
jmp 0x14000255e
mov qword [rsp + 0x60], rbx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov edx, 8
mov r8d, 0xaa
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.140001360
nop
cmp qword [rbp + 0x70], 0
je 0x14000250f
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov ecx, eax
mov r9d, 0x55
mov r8, qword [rbp + 0x70]
lea edx, [r9 - 0x54]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14000250f
xor r9d, r9d
mov r8, qword [rbp + 0x70]
lea rdx, str.PrinterName
mov rcx, rbx
call fcn.140005440
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.140001360
nop
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x14000202a
cmp word [rax], 0
jne 0x14000206c
lea r8, str.PrinterName
lea rdx, str.Setup
mov rcx, rbx
call fcn.140007f20
nop
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x30], rax
test rcx, rcx
je 0x14000206c
mov qword [rsp + 0x50], rcx
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x140002581
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
nop
lea rdx, str.PortName
lea rcx, [rsp + 0x60]
call fcn.140002f70
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x1c0]
call fcn.140001360
nop
lea rdx, str.DriverName
lea rcx, [rsp + 0x60]
call fcn.140002f70
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x20]
call fcn.140001360
nop
lea r8, str.DriverPath
lea rdx, str.Setup
mov rcx, rbx
call fcn.140007f20
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x170]
call fcn.140001360
nop
lea r8, str.ConfigFile
lea rdx, str.Setup
mov rcx, rbx
call fcn.140007f20
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x120]
call fcn.140001360
nop
lea r8, str.DataFile
lea rdx, str.Setup
mov rcx, rbx
call fcn.140007f20
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xd0]
call fcn.140001360
nop
lea r8, str.Scriptlet
lea rdx, str.Setup
mov rcx, rbx
call fcn.140007f20
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x80]
call fcn.140001360
nop
mov r9, rbx
mov r8d, 0x1389
lea rdx, str.Version
lea rcx, str.Setup
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea r8, [0x14002c4ec]
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r8
mov rcx, qword [rbp + 0x160]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbp + 0x110]
mov qword [rsp + 0x20], rcx
mov r9, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x20]
mov ecx, eax
call fcn.140004300
mov rsi, rax
lea rax, [0x140004f10]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rsi
test rsi, rsi
jne 0x1400021f2
xor edi, edi
mov r14d, edi
jmp 0x1400022d2
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x210]
call fcn.1400171d0
mov edx, 0x104
lea rcx, [rbp + 0x210]
lea rax, [rbp + 0x210]
sub rbx, rax
nop dword [rax]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x140002242
movzx eax, word [rbx + rcx]
test ax, ax
je 0x140002242
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140002220
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
xor edi, edi
mov word [rax], di
test rdx, rdx
jne 0x140002260
mov dword [0], edi
jmp 0x140002257
mov qword [rsp + 0x60], rsi
mov r8, qword [rbp + 0xc0]
mov qword [rsp + 0x68], r8
mov rdx, qword [rbp + 0x200]
mov qword [rsp + 0x70], rdx
mov rcx, qword [rbp + 0x20]
mov qword [rsp + 0x78], rcx
mov rax, qword [rbp - 0x30]
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x48], rsi
lea r9, [rbp + 0x210]
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x478]
mov r8, qword [rbp + 0x470]
mov rdx, qword [rbp + 0x468]
mov rcx, qword [r14 + 0x18]
call qword [r14]
mov r14, rax
test rsi, rsi
je 0x1400022ed
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
lea r8, [rsi - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rax, qword [rbp + 0xc0]
test rax, rax
je 0x140002319
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
je 0x140002587
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
je 0x14000233f
mov rax, qword [rcx]
lea rdx, [rbp + 0x80]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0xb8], rdi
mov rax, qword [rbp + 0x110]
test rax, rax
je 0x14000236b
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x14000258d
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x140002391
mov rax, qword [rcx]
lea rdx, [rbp + 0xd0]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x108], rdi
mov rax, qword [rbp + 0x160]
test rax, rax
je 0x1400023bd
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x158]
test rcx, rcx
je 0x140002593
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x158]
test rcx, rcx
je 0x1400023e3
mov rax, qword [rcx]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x158], rdi
mov rax, qword [rbp + 0x1b0]
test rax, rax
je 0x14000240f
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x1a8]
test rcx, rcx
je 0x140002599
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x1a8]
test rcx, rcx
je 0x140002435
mov rax, qword [rcx]
lea rdx, [rbp + 0x170]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x1a8], rdi
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x14000245b
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x14000259f
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x140002478
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x18], rdi
mov rax, qword [rbp + 0x200]
test rax, rax
je 0x1400024a4
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x1f8]
test rcx, rcx
je 0x1400025a5
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x1f8]
test rcx, rcx
je 0x1400024ca
mov rax, qword [rcx]
lea rdx, [rbp + 0x1c0]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x1f8], rdi
mov rax, qword [rbp - 0x30]
test rax, rax
je 0x1400024f0
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x1400025ab
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x14000250d
mov rax, qword [rcx]
lea rdx, [rbp - 0x70]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 0x38], rdi
jmp 0x14000251f
mov ecx, 0xe
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor edi, edi
mov r14d, edi
mov rax, qword [rbp + 0x70]
test rax, rax
je 0x140002541
mov qword [rsp + 0x50], rax
mov rcx, qword [rbp + 0x68]
test rcx, rcx
je 0x14000257b
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x68]
test rcx, rcx
je 0x14000255b
mov rax, qword [rcx]
lea rdx, [rbp + 0x30]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
nop
mov rax, r14
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.1400153e0
add rsp, 0x530
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
nop
call fcn.140014ea8
int3