Function at 0x1401956a0
Capabilities:
Create process on windows
Create thread

Disassembly:
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
xor edi, edi
movss xmm0, dword [0x14039805c]
call fcn.140141a90
movaps xmm0, xmmword [0x14039d580]
movups xmmword [rbp - 0x50], xmm0
lea rdx, [rbp - 0x50]
xor ecx, ecx
call fcn.14013d4d0
lea rcx, str.WELCOME_TO_MARNE
call fcn.14016fb40
lea ecx, [rdi + 1]
call fcn.14013ccf0
movss xmm0, dword [0x140393c7c]
call fcn.140141a90
call fcn.14016d720
lea rdx, str.DINPUT8.dll
mov ecx, dword [0x1406049ec]
call fcn.1401af180
test al, al
jne 0x140195815
lea rbx, [0x1405f8840]
mov rax, rbx
cmp qword [reloc.WS2_32.dll_ntohs], 0x10
cmovae rax, qword [0x1405f8840]
cmp byte [rax], dil
je 0x140195804
lea rcx, str.INITIATE_THE__BF1_EXPERIENCE_BY_CLICKING_n_START_GAME._n_nFOR_AN_ENHANCED_ENCOUTER_WITH_MODS_nLAUNCH_THE_GAME_WITH_FROSTY_TOOLSUITE._n_n
call fcn.14016fb40
mov qword [rbp + 0x20], rdi
lea rdx, [rbp + 0x20]
lea rcx, str._START_GAME
call fcn.1401683f0
test al, al
je 0x1401957c9
cmp qword [reloc.WS2_32.dll_ntohs], 0x10
cmovae rbx, qword [0x1405f8840]
mov dword [rsp + 0x28], edi
lea r9, [0x140393244]
mov qword [rsp + 0x20], r9
mov r8, rbx
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
call sub.MSVCP140.dll__Xtime_get_ticks
mov rcx, rax
movabs rax, 0xd6bf94d5e57a42bd
imul rcx
add rdx, rcx
sar rdx, 0x17
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [0x1406029c0], rdx
movss xmm1, dword [0x140393cf0]
xorps xmm0, xmm0
call fcn.140140570
mov qword [rbp + 0x20], rdi
lea rdx, [rbp + 0x20]
lea rcx, str._SERVER_BROWSER
call fcn.1401683f0
test al, al
je 0x140195972
mov dword [0x1406049e8], 2
jmp 0x140195972
lea rcx, str.THE_LAUNCHER_COULDNT_FIND_THE_GAME._nPLEASE_INITIATE_IT_MANUALLY_nAND_WAIT_FOR_AUTO_DETECTION._n_n_n
call fcn.14016fb40
jmp 0x140195972
lea rcx, str.BF1_IS_NOW_STARTING._nMARNE_WILL_AUTO_ATTACH_WHEN_THE_nGAME_IS_READY._n
call fcn.14016fb40
call fcn.140134860
subss xmm0, dword [0x140393cd0]
mov dword [rbp + 0x20], 0x41a00000
movss dword [rbp + 0x24], xmm0
lea rcx, [rbp + 0x20]
call fcn.140140f70
movaps xmm0, xmmword [0x140393d50]
movups xmmword [rbp - 0x50], xmm0
mov qword [rsp + 0x28], 6
movss xmm0, dword [0x140393ca0]
movss dword [rsp + 0x20], xmm0
lea r9, [rbp - 0x50]
movss xmm2, dword [0x140393ca4]
movss xmm1, dword [0x140393cc0]
lea rcx, str.Loading
call fcn.14019b530
call fcn.14016d720
cmp byte [0x1406029c9], dil
jne 0x140195972
lea rdx, str.DINPUT8.dll
mov ecx, dword [0x1406049ec]
call fcn.1401af180
test al, al
je 0x140195972
mov byte [0x1406029cd], dil
mov rcx, qword [0x140604fb0]
mov rdx, qword [0x140604fb8]
cmp rcx, rdx
je 0x1401958e5
lea r8, [0x140604fb0]
call fcn.1401744f0
mov rax, qword [0x140604fb0]
mov qword [0x140604fb8], rax
cmp byte [0x1406029cc], dil
jne 0x14019596b
mov ecx, 8
call fcn.140384b9c
test rax, rax
je 0x140195909
lea rcx, [0x140198730]
mov qword [rax], rcx
jmp 0x14019590c
mov rax, rdi
mov qword [rbp + 0x20], rax
lea rcx, [rbp - 0x48]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x1401772f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x50], rax
test rax, rax
je 0x140195a38
cmp dword [rbp - 0x48], 0
je 0x140195a46
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x40], xmm0
lea rcx, [rbp - 0x40]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x140195a46
mov byte [0x1406029cc], 1
jmp 0x140195972
mov byte [0x1406029c9], 1
call fcn.140134860
movaps xmm8, xmm0
movaps xmm7, xmm0
mulss xmm7, dword [0x140393c54]
mulss xmm7, dword [0x140393c98]
call fcn.140134880
movaps xmm6, xmm0
subss xmm6, xmm7
call fcn.140134880
divss xmm0, dword [0x140393c9c]
addss xmm0, xmm6
movss dword [rbp + 0x20], xmm0
mov dword [rbp + 0x24], 0
lea rcx, [rbp + 0x20]
call fcn.140140f70
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
movaps xmm1, xmmword [0x140393d50]
movups xmmword [rbp - 0x50], xmm1
mov dword [rbp + 0x20], 0x3f800000
mov dword [rbp + 0x24], 0x3f800000
mov qword [rbp + 0x28], 0
movss dword [rbp + 0x30], xmm7
movss dword [rbp + 0x34], xmm8
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x20]
lea r8, [rbp + 0x28]
lea rdx, [rbp + 0x30]
mov rcx, qword [0x1406049e0]
call fcn.140169ca0
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x50]
add rsp, 0x80
pop rdi
pop rbx
pop rbp
ret
mov dword [rbp - 0x48], edi
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov ecx, 1
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3