Function at 0x14008da80
Capabilities:
Get geographical location
Get keyboard layout

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov rax, qword [0x1400b2040]
xor rax, rsp
mov qword [rbp - 9], rax
mov rdi, r8
mov qword [rbp - 0x11], r8
mov r8, qword [0x1400b5410]
mov rsi, r9
mov r13d, edx
mov r12, rcx
test r8, r8
je case.0x14008df55.527
mov r15, qword [r8 + 0x98]
lea r14, [r8 + 8]
mov qword [rbp - 0x59], r14
cmp edx, 0x200
ja 0x14008df2b
je case.0x14008db17.160
lea eax, [rdx - 7]
cmp eax, 0xfe
ja case.0x14008df55.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x8e184]
mov ecx, dword [rdx + rax*4 + 0x8e164]
add rcx, rdx
jmp rcx
lea eax, [r13 - 0x100]
test eax, 0xfffffffb
mov eax, 0x100
sete bl
cmp rdi, rax
jae case.0x14008df55.527
cmp rdi, 0xd
jne 0x14008db4b
shr rsi, 0x10
test ax, si
mov eax, 0x10d
cmovne edi, eax
movsxd r12, edi
mov rcx, r12
call fcn.14008d530
movss xmm6, dword [0x1400a01b8]
movsxd r15, eax
cmp r15d, 0x256
jne 0x14008dbf2
test bl, bl
jne 0x14008dbf6
movaps xmm3, xmm6
mov r8b, 1
mov edx, r15d
mov rcx, r14
call fcn.140003140
mov rsi, qword [0x1400b5410]
add rsi, 8
cmp edi, 0x1ff
ja 0x14008dba9
mov dword [r14 + r12*4 + 0xf8], r15d
mov dword [r14 + 0xa50], edi
xorps xmm3, xmm3
movzx r8d, bl
mov edx, r15d
mov rcx, rsi
call fcn.140003140
cmp edi, 0x1ff
ja 0x14008dbd3
mov dword [rsi + r12*4 + 0xf8], r15d
mov dword [rsi + r15*4 + 0xf8], edi
cmp edi, 0x10
jne 0x14008dc46
movzx r8d, bl
mov edx, 0x282
mov rcx, r14
test bl, bl
je 0x14008dc03
movaps xmm3, xmm6
call fcn.140003140
jmp 0x14008dc0e
test eax, eax
je 0x14008dbd3
lea rsi, [r8 + 8]
test bl, bl
je 0x14008dba9
movaps xmm3, xmm6
jmp 0x14008dbac
xorps xmm3, xmm3
call fcn.140003140
xorps xmm6, xmm6
mov rdi, qword [0x1400b5410]
movaps xmm3, xmm6
add rdi, 8
movzx r8d, bl
mov rcx, rdi
mov edx, 0x210
call fcn.140003140
mov dword [rdi + 0x378], 0x210
mov dword [rdi + 0x938], 0xa0
jmp case.0x14008df55.527
cmp edi, 0x11
jne 0x14008dca8
movzx r8d, bl
mov edx, 0x281
mov rcx, r14
test bl, bl
je 0x14008dc65
movaps xmm3, xmm6
call fcn.140003140
jmp 0x14008dc70
xorps xmm3, xmm3
call fcn.140003140
xorps xmm6, xmm6
mov rdi, qword [0x1400b5410]
movaps xmm3, xmm6
add rdi, 8
movzx r8d, bl
mov rcx, rdi
mov edx, 0x20f
call fcn.140003140
mov dword [rdi + 0x380], 0x20f
mov dword [rdi + 0x934], 0xa2
jmp case.0x14008df55.527
cmp edi, 0x12
jne case.0x14008df55.527
movzx r8d, bl
mov edx, 0x283
mov rcx, r14
test bl, bl
je 0x14008dccb
movaps xmm3, xmm6
call fcn.140003140
jmp 0x14008dcd6
xorps xmm3, xmm3
call fcn.140003140
xorps xmm6, xmm6
mov rdi, qword [0x1400b5410]
movaps xmm3, xmm6
add rdi, 8
movzx r8d, bl
mov rcx, rdi
mov edx, 0x211
call fcn.140003140
mov dword [rdi + 0x388], 0x211
mov dword [rdi + 0x93c], 0xa4
jmp case.0x14008df55.527
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x51], xmm0
cmp r13d, 7
mov qword [rbp - 0x41], rax
mov dword [rbp - 0x51], 7
sete byte [rbp - 0x49]
jmp 0x14008df9c
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
shr rax, 0x10
mov r9d, 4
movzx ecx, ax
lea r8, [r15 + 0x2c]
mov edx, 0x20001004
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne case.0x14008df55.527
xor ebx, ebx
mov dword [r15 + 0x2c], ebx
jmp case.0x14008df55.527
mov rcx, r12
call qword [sym.imp.USER32.dll_IsWindowUnicode]
test eax, eax
je 0x14008dd94
mov rdx, qword [rbp - 0x11]
lea rax, [rdx - 1]
cmp rax, 0xfffe
ja case.0x14008df55.527
mov rcx, r14
call fcn.140002f60
jmp case.0x14008df55.527
mov ecx, dword [r15 + 0x2c]
lea rax, [rbp - 0x21]
mov esi, 1
lea r8, [rbp - 0x11]
xor ebx, ebx
mov dword [rsp + 0x28], esi
mov r9d, esi
mov qword [rsp + 0x20], rax
mov edx, esi
mov word [rbp - 0x21], bx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx eax, word [rbp - 0x21]
test eax, eax
je case.0x14008df55.527
mov qword [rbp - 0x45], rbx
mov r14d, 2
mov dword [rbp - 0x3d], ebx
mov rbx, qword [0x1400b5410]
add rbx, 0x38e8
mov dword [rbp - 0x51], 6
mov dword [rbp - 0x4d], r14d
mov dword [rbp - 0x49], eax
mov ecx, dword [rbx]
mov r8d, dword [rbx + 4]
cmp ecx, r8d
jne 0x14008dfd6
inc ecx
test r8d, r8d
je 0x14008dfc2
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14008dfc7
cmp si, 1
jne case.0x14008df55.527
call fcn.14008c7a0
test al, al
je case.0x14008df55.527
mov eax, 1
jmp 0x14008e13b
mov byte [r15 + 0x30], 1
jmp case.0x14008df55.527
mov eax, dword [r15 + 0x10]
xor ebx, ebx
cmp r13d, 0x200
mov qword [r15 + 8], r12
mov edi, ebx
setne dil
inc edi
cmp eax, edi
je 0x14008dec3
cmp r13d, 0x200
mov dword [rbp - 0x51], 0x18
mov ecx, send
mov dword [rbp - 0x4d], 0x80000000
mov r14d, 2
mov qword [rbp - 0x49], r12
cmovne r14d, ecx
mov dword [rbp - 0x41], ebx
mov dword [rbp - 0x35], r14d
mov dword [rbp - 0x39], 0x18
mov qword [rbp - 0x31], r12
mov dword [rbp - 0x29], ebx
test eax, eax
je 0x14008deb1
lea rcx, [rbp - 0x51]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
lea rcx, [rbp - 0x39]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov r14, qword [rbp - 0x59]
mov dword [r15 + 0x10], edi
movsx eax, si
mov dword [rbp - 0x19], eax
shr rsi, 0x10
movsx eax, si
mov dword [rbp - 0x15], eax
mov eax, dword [r14]
shr eax, 0xa
and al, 1
cmp r13d, 0x200
jne 0x14008def7
test al, al
je 0x14008df11
lea rdx, [rbp - 0x19]
mov rcx, r12
call qword [sym.imp.USER32.dll_ClientToScreen]
jmp 0x14008df11
cmp r13d, 0xa0
jne 0x14008df11
test al, al
jne 0x14008df11
lea rdx, [rbp - 0x19]
mov rcx, r12
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm2, dword [rbp - 0x15]
movd xmm1, dword [rbp - 0x19]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.1400032b0
jmp case.0x14008df55.527
lea eax, [rdx - 0x201]
cmp eax, 0xa2
ja case.0x14008df55.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x8e2a0]
mov ecx, dword [rdx + rax*4 + 0x8e284]
add rcx, rdx
jmp rcx
xor ebx, ebx
cmp r13d, 0x2a3
mov eax, ebx
setne al
inc eax
cmp dword [r15 + 0x10], eax
jne case.0x14008df55.527
cmp qword [r15 + 8], r12
jne 0x14008df7b
mov qword [r15 + 8], rbx
mov esi, 1
mov dword [r15 + 0x10], ebx
mov dword [rbp - 0x51], esi
mov dword [rbp - 0x4d], esi
mov qword [rbp - 0x41], rbx
mov dword [rbp - 0x49], 0xff7fffff
mov dword [rbp - 0x45], 0xff7fffff
lea rbx, [r8 + 0x38e8]
mov ecx, dword [rbx]
mov r8d, dword [rbx + 4]
cmp ecx, r8d
jne 0x14008dfd6
inc ecx
test r8d, r8d
je 0x14008dfc2
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14008dfc7
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.140028730
movsxd rax, dword [rbx]
movups xmm0, xmmword [rbp - 0x51]
movsd xmm1, qword [rbp - 0x41]
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
movups xmmword [rax + rcx*8], xmm0
movsd qword [rax + rcx*8 + 0x10], xmm1
inc dword [rbx]
jmp case.0x14008df55.527
xor ebx, ebx
cmp r13d, 0x204
je 0x14008e011
mov esi, ebx
cmp r13d, 0x206
jne 0x14008e016
mov esi, 1
lea eax, [r13 - 0x207]
mov r14d, 2
test eax, 0xfffffffd
lea eax, [r13 - 0x20b]
cmove esi, r14d
test eax, 0xfffffffd
jne 0x14008e048
shr rdi, 0x10
cmp di, 1
setne bl
lea esi, [rbx + 3]
cmp dword [r15 + 0x14], 0
jne 0x14008e063
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x14008e063
mov rcx, r12
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [r15 + 0x14]
mov r8b, 1
bts eax, esi
mov edx, esi
mov dword [r15 + 0x14], eax
call fcn.140003350
jmp case.0x14008df55.527
xor ebx, ebx
cmp r13d, 0x205
mov r14d, ebx
sete r14b
cmp r13d, 0x208
jne 0x14008e09e
mov r14d, 2
jmp 0x14008e0ba
cmp r13d, 0x20c
jne 0x14008e0ba
shr rdi, 0x10
mov r14d, ebx
cmp di, 1
setne r14b
add r14d, 3
mov eax, dword [r15 + 0x14]
btr eax, r14d
mov dword [r15 + 0x14], eax
test eax, eax
jne 0x14008e0db
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r12
jne 0x14008e0db
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor r8d, r8d
mov edx, r14d
call fcn.140003350
jmp case.0x14008df55.527
shr rdi, 0x10
xorps xmm1, xmm1
movsx eax, di
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x1400a0250]
call fcn.1400033f0
jmp case.0x14008df55.527
shr rdi, 0x10
xorps xmm2, xmm2
movsx eax, di
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x1400a0b20]
divss xmm1, dword [0x1400a0250]
call fcn.1400033f0
jmp case.0x14008df55.527
cmp edi, 7
jne case.0x14008df55.527
mov byte [r15 + 0x32], 1
xor eax, eax
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.140090940
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret