Function at 0x140047d50
Capabilities:
Create thread
Execute command
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x500]
sub rsp, 0x600
mov rax, qword [0x140066040]
xor rax, rsp
mov qword [rbp + 0x4f0], rax
xor r15d, r15d
lea rcx, [0x14005bd88]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
call qword [sym.imp.USER32.dll_GetDesktopWindow]
lea rdx, [rbp + 0x200]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rbp + 0x208]
mov dword [0x14006723c], eax
mov eax, dword [rbp + 0x20c]
mov dword [0x14006724c], eax
xorps xmm0, xmm0
movups xmmword [rbp + 0x2c8], xmm0
mov qword [rbp + 0x2d8], r15
mov qword [rbp + 0x2e0], r15
lea r8d, [r15 + 0x10]
lea rdx, str.USB_SERIAL_CH340
lea rcx, [rbp + 0x2c8]
call fcn.140043bf0
nop
lea rdx, [rbp + 0x2c8]
lea rcx, [rbp + 0x270]
call fcn.140047950
nop
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
cmp qword [rbp + 0x280], r15
je 0x140047e42
lea rdx, str.Found_COM_port:
call fcn.140043650
lea rdx, [rbp + 0x270]
cmp qword [rbp + 0x288], 0xf
cmova rdx, qword [rbp + 0x270]
mov r8, qword [rbp + 0x280]
jmp 0x140047e6c
lea rdx, str.COM_port_not_found_for_description:
call fcn.140043650
lea rdx, [rbp + 0x2c8]
cmp qword [rbp + 0x2e0], 0xf
cmova rdx, qword [rbp + 0x2c8]
mov r8, qword [rbp + 0x2d8]
mov rcx, rax
call fcn.14004b0f0
lea rdx, [0x140043820]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea rcx, [rbp + 0x270]
cmp qword [rbp + 0x288], 0xf
cmova rcx, qword [rbp + 0x270]
mov byte [0x140067220], 0
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [0x140067228], rax
cmp rax, 0xffffffffffffffff
jne 0x140047ee6
lea rcx, str.serial_handle_is_invalid_n
call fcn.140003a60
jmp 0x140047f73
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x214], xmm0
mov qword [rbp + 0x224], r15
mov dword [rbp + 0x210], 0x1c
lea rdx, [rbp + 0x210]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetCommState]
test eax, eax
jne 0x140047f31
lea rcx, str.failed_to_get_communication_state_n
call fcn.140003a60
mov rcx, qword [0x140067228]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140047f73
mov dword [rbp + 0x214], 0x1c200
mov word [rbp + 0x222], 8
mov byte [rbp + 0x224], 0
lea rdx, [rbp + 0x210]
mov rcx, qword [0x140067228]
call qword [sym.imp.KERNEL32.dll_SetCommState]
test eax, eax
jne 0x140047f6c
lea rcx, str.failed_to_set_communication_state_n
jmp 0x140047f1d
mov byte [0x140067220], 1
mov ecx, 8
call fcn.140053fa8
lea rcx, [0x140047510]
mov qword [rax], rcx
mov qword [rbp + 0x200], rax
lea rcx, [rbp + 0x268]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r15d
mov r9, rax
lea r8, [0x14004b6f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0x260], rax
test rax, rax
je 0x1400489b4
xorps xmm0, xmm0
lea rax, [0x140056ab6]
mov qword [rbp + 0x210], rax
lea rax, str._device
mov qword [rbp + 0x218], rax
lea rax, str.FPGA
mov qword [rbp + 0x220], rax
movdqu xmmword [rbp + 0x2e8], xmm0
mov qword [rbp + 0x2f8], r15
mov edx, 3
lea rcx, [rbp + 0x2e8]
call fcn.14004b060
mov r8d, 0x18
lea rdx, [rbp + 0x210]
mov r14, qword [rbp + 0x2e8]
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
lea rsi, [r14 + 0x18]
mov qword [rbp + 0x2f0], rsi
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x290], xmm0
movups xmmword [rbp + 0x2a0], xmm0
movups xmmword [rbp + 0x2b0], xmm0
mov qword [rbp + 0x2c0], rax
movdqu xmmword [rbp + 0x1d0], xmm0
mov qword [rbp + 0x1e0], r15
sub rsi, r14
mov rdi, rsi
sar rdi, 3
test rdi, rdi
je 0x1400480a5
mov rdx, rdi
lea rcx, [rbp + 0x1d0]
call fcn.14004b060
mov rbx, qword [rbp + 0x1d0]
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rdi*8]
mov qword [rbp + 0x1d8], rax
lea rax, [rbp + 0x1d0]
mov qword [rbp + 0x200], rax
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp + 0x290]
call fcn.140048d00
mov byte [rbp + 0x2a8], 0
mov qword [rbp + 0x2b0], r15
mov qword [rbp + 0x2b8], r15
mov qword [rbp + 0x2c0], r15
mov rcx, qword [rbp + 0x1d0]
test rcx, rcx
je 0x140048143
mov rax, qword [rbp + 0x1e0]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004812c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004812c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140053a54
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1d0], xmm0
mov qword [rbp + 0x1e0], r15
lea rcx, str.attempting_to_connect_to_device..._n
call fcn.14003f340
lea rcx, [rbp + 0x290]
call fcn.14003f5e0
test al, al
jne 0x14004816b
lea rcx, str.failed_to_connect_to_device_n
jmp 0x140048278
mov r9, qword [rbp + 0x2c0]
mov r8, qword [rbp + 0x2b8]
mov rdx, qword [rbp + 0x2b0]
lea rcx, str.connected_to_device__id_____lli__version_____lli._lli_n_n
call fcn.14003f340
xor edx, edx
mov r8d, 0x1d0
lea rcx, [rbp + 0x320]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, 0x1c0
lea rcx, [rbp + 0x330]
call sub.VCRUNTIME140.dll_memset
lea rdi, str.FortniteClient_Win64_Shipping.exe
mov qword [rbp + 0x320], rdi
mov ecx, 0x22
call fcn.140053fe4
mov rbx, rax
mov r8, rdi
mov edx, 0x22
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea r8, [rbp + 0x32c]
mov rdx, rbx
mov rcx, qword [0x140067208]
call qword [sym.imp.VMM.dll_VMMDLL_PidGetFromName]
test eax, eax
jne 0x140048204
mov byte [rbp + 0x328], 1
jmp 0x140048271
mov edx, dword [rbp + 0x32c]
lea rcx, [rbp + 0x330]
call fcn.14003f980
cmp byte [rbp + 0x328], 0
jne 0x140048271
mov edx, dword [rbp + 0x32c]
lea rcx, str.found_fortnite__process_id_____d_n
call fcn.14003f340
lea rcx, [rbp + 0x320]
call fcn.14003fc40
xorps xmm0, xmm0
movups xmmword [rbp + 0x300], xmm0
movups xmmword [rbp + 0x310], xmm0
mov r8d, dword [rbp + 0x32c]
mov rdx, rdi
lea rcx, [rbp + 0x300]
call fcn.140040f20
cmp byte [rbp + 0x304], 0
je 0x140048346
lea rcx, str.failed_to_find_fortnite_n
call fcn.14003f490
mov rcx, qword [0x140067208]
call qword [sym.imp.VMM.dll_VMMDLL_Close]
mov byte [rbp + 0x2a8], 0
movabs rax, 0x2ac18d5f7415270b
mov qword [rbp + 0x200], rax
movabs rax, 0x82d16657182649a4
mov qword [rbp + 0x208], rax
movabs rcx, 0x2ac18d3a0760467b
mov qword [rbp + 0x1d0], rcx
mov qword [rbp + 0x1d8], rax
movdqa xmm0, xmmword [rbp + 0x1d0]
xorps xmm0, xmmword [rbp + 0x200]
movdqa xmmword [rbp + 0x200], xmm0
lea rcx, [rbp + 0x200]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
nop
mov rcx, qword [rbp + 0x290]
test rcx, rcx
je 0x140048833
mov rax, qword [rbp + 0x2a0]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004881c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004881c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rdx, qword [rbp + 0x308]
lea rcx, str.found_fortnite__base_address____0x_llx_n_n
call fcn.14003f340
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x210], xmm0
mov qword [rbp + 0x220], r15
mov eax, dword [rbp + 0x32c]
mov dword [rbp + 0x228], eax
mov qword [rbp + 0x230], r15
mov dword [rbp + 0x238], r15d
lea rdx, [rbp + 0x210]
lea rcx, [0x140067318]
call fcn.1400489f0
lea rcx, [rbp + 0x210]
call fcn.140043380
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x210], xmm0
mov qword [rbp + 0x220], r15
mov eax, dword [rbp + 0x32c]
mov dword [rbp + 0x228], eax
mov qword [rbp + 0x230], r15
mov dword [rbp + 0x238], r15d
lea rdx, [rbp + 0x210]
lea rcx, [0x140067908]
call fcn.1400489f0
lea rcx, [rbp + 0x210]
call fcn.140043380
lea rdx, [rbp + 0x290]
lea rcx, [rsp + 0x40]
call fcn.140041350
lea rbx, [0x1400673c0]
mov rcx, rbx
lea rax, [rsp + 0x40]
mov edx, 5
nop dword [rax]
nop dword [rax + rax]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x140048420
mov rax, qword [rax]
mov qword [rcx], rax
lea rcx, str.loop_started__press_VK_END_to_exit_n
call fcn.14003f340
mov ecx, 8
call fcn.140053fa8
lea rcx, [0x140051d40]
mov qword [rax], rcx
mov qword [rbp + 0x200], rax
lea rcx, [rbp + 0x258]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r15d
mov r9, rax
lea r8, [0x14004b6f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0x250], rax
test rax, rax
je 0x1400489a1
mov ecx, 8
call fcn.140053fa8
lea rcx, [rbp + 0x300]
mov qword [rax], rcx
mov qword [rbp + 0x200], rax
lea rcx, [rbp + 0x1d8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r15d
mov r9, rax
lea r8, [0x14004b720]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0x1d0], rax
test rax, rax
je 0x14004898e
cmp dword [rbp + 0x1d8], 0
je 0x140048982
movaps xmm0, xmmword [rbp + 0x1d0]
movdqa xmmword [rbp + 0x200], xmm0
lea rcx, [rbp + 0x200]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x140048982
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x1d0], xmm0
lea ecx, [rax + 0x23]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048764
cmp byte [0x1400673c8], 0
jne 0x140048657
movups xmm0, xmmword [0x140067598]
movups xmmword [0x1400675f8], xmm0
movups xmm1, xmmword [0x1400675a8]
movups xmmword [0x140067608], xmm1
movups xmm0, xmmword [0x1400675b8]
movups xmmword [0x140067618], xmm0
movups xmm1, xmmword [0x1400675c8]
movups xmmword [0x140067628], xmm1
mov edx, dword [0x1400673cc]
bts edx, 0x1f
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], 0x40
lea r9, [0x140067598]
mov r8, qword [0x140067590]
mov rcx, qword [0x140067208]
call qword [sym.imp.VMM.dll_VMMDLL_MemReadEx]
mov r8d, r15d
mov r9d, r15d
nop dword [rax + rax]
mov ecx, r8d
and ecx, 3
add ecx, ecx
mov eax, 1
shl eax, cl
mov ecx, r9d
shr rcx, 3
test byte [rcx + rbx + 0x1d8], al
je 0x140048647
test byte [rcx + rbx + 0x238], al
jne 0x140048647
mov edx, r8d
shr rdx, 3
movzx ecx, byte [rdx + rbx + 0x218]
mov eax, r8d
and eax, 7
bts ecx, eax
mov byte [rdx + rbx + 0x218], cl
inc r8d
add r9d, 2
cmp r9d, 0x200
jl 0x140048600
lea rcx, [0x140067318]
call fcn.140040880
mov rdx, qword [0x1400666b0]
add rdx, qword [0x1400670e0]
lea r8, [rbp + 0x1f0]
call fcn.140049460
mov rdx, qword [0x1400670e0]
add rdx, 0x2a8
lea r8, [rbp + 0x1d0]
lea rcx, [0x140067318]
call fcn.140049210
mov rdx, qword [0x140067268]
add rdx, 0x338
lea r8, [0x140067260]
lea rcx, [0x140067318]
call fcn.140049210
xor edx, edx
lea rcx, [0x140067318]
call fcn.140040aa0
mov rax, qword [rbp + 0x1d0]
cmp rax, 0x1000000
jbe 0x140048750
xorps xmm0, xmm0
movups xmmword [rbp + 0x210], xmm0
mov qword [rbp + 0x210], rax
mov eax, dword [rbp + 0x1f0]
mov dword [rbp + 0x218], eax
movdqu xmmword [rbp + 0x220], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x230], xmm1
movdqu xmmword [rbp + 0x240], xmm0
lea rcx, [rbp + 0x210]
call fcn.1400460b0
mov qword [rbp + 0x200], 1
lea rcx, [rbp + 0x200]
call fcn.140043860
nop
lea rcx, [rbp + 0x238]
call fcn.140048c40
lea rcx, [rbp + 0x220]
call fcn.140048c40
mov ecx, 0x23
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048572
call qword [sym.imp.VMM.dll_VMMDLL_CloseAll]
cmp dword [rbp + 0x258], 0
je 0x140048976
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp + 0x258], eax
je 0x14004896a
movaps xmm0, xmmword [rbp + 0x250]
movdqa xmmword [rbp + 0x200], xmm0
xor edx, edx
lea rcx, [rbp + 0x200]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x14004895e
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x250], xmm0
cmp dword [rbp + 0x268], eax
je 0x140048976
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp + 0x268], eax
je 0x14004896a
movaps xmm0, xmmword [rbp + 0x260]
movdqa xmmword [rbp + 0x200], xmm0
xor edx, edx
lea rcx, [rbp + 0x200]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x14004895e
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x260], xmm0
cmp dword [rbp + 0x258], eax
je 0x1400482f0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
call fcn.140053a54
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x290], xmm0
mov qword [rbp + 0x2a0], r15
test r14, r14
je 0x14004887f
mov rax, qword [rbp + 0x2f8]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140048876
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140048876
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r14
call fcn.140053a54
nop
cmp dword [rbp + 0x268], 0
je 0x14004888f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov rdx, qword [rbp + 0x288]
cmp rdx, 0xf
jbe 0x1400488d3
inc rdx
mov rcx, qword [rbp + 0x270]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400488ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400488ce
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140053a54
mov qword [rbp + 0x280], r15
mov qword [rbp + 0x288], 0xf
mov byte [rbp + 0x270], 0
mov rdx, qword [rbp + 0x2e0]
cmp rdx, 0xf
jbe 0x140048930
inc rdx
mov rcx, qword [rbp + 0x2c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004892b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004892b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140053a54
xor eax, eax
mov rcx, qword [rbp + 0x4f0]
xor rcx, rsp
call fcn.1400539d0
lea r11, [rsp + 0x600]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 0x1d8], r15d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 0x258], r15d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 0x268], r15d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3