Function at 0x10012470
Capabilities:
Inspect section memory permissions
Log keystrokes via polling
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10058c9d
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x10083028]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x80], esi
call fcn.1001f040
test eax, eax
jne 0x10012564
mov eax, dword [esi]
lea ecx, [edi + 0x24]
push ecx
push 0x10078978
push esi
call dword [eax + 0x1c]
test eax, eax
js 0x10012564
mov ecx, dword [edi + 0x24]
lea esi, [edi + 0x28]
push esi
push ecx
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov ecx, dword [ebp - 0x80]
lea edx, [ebp - 0x74]
push edx
push ecx
mov eax, dword [ecx]
call dword [eax + 0x30]
mov ecx, dword [ebp - 0x80]
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 0x48]
push edx
push 0x10078988
mov dword [edi + 0x20], eax
mov eax, dword [ecx]
push 0
push ecx
mov dword [ebp - 0x78], 0
call dword [eax + 0x24]
mov edx, dword [edi + 0x24]
mov eax, dword [edx]
mov ecx, dword [eax + 0x24]
lea eax, [edi + 0x2c]
push eax
push 0
push dword [ebp - 0x78]
push edx
call ecx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push 0x10011f20
push 0xfffffffffffffffc
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 0
mov dword [0x10083500], eax
call fcn.1001c570
call fcn.1001f2c0
or dword [eax], 1
push dword [edi + 0x20]
call fcn.10044cd0
push dword [esi]
push dword [edi + 0x24]
call fcn.10043f80
add esp, 0x10
mov ecx, edi
call fcn.100122c0
push 0x2d
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov cl, byte [edi + 4]
test ax, ax
je 0x1001257c
test cl, cl
sete cl
mov byte [edi + 4], cl
test cl, cl
je 0x10012a04
call fcn.100441a0
call fcn.10044e50
call fcn.10026c10
push 0
push 0
push str.Tomb_Raider:_VR
call fcn.10017cc0
add esp, 8
mov dword [esp], 0x43160000
call fcn.10028d60
mov eax, dword [edi]
push 0
push str.Settings
mov byte [eax + 0x15], 0
call fcn.100387f0
add esp, 0xc
test al, al
je 0x1001289c
push 0
push 0
push str.General
call fcn.10038be0
add esp, 0xc
test al, al
je 0x10012722
mov ecx, dword [edi]
sub esp, 8
mov dword [ebp - 0x20], 0x20000000
mov dword [ebp - 0x1c], 0x20000004
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0x10]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov eax, esp
push 0x19
push str.Current_resolution:_x
mov dword [eax], 2
mov dword [eax + 4], ecx
lea eax, [ebp - 0x38]
push eax
call fcn.1000fad0
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
push 0
cmovae eax, dword [ebp - 0x38]
push eax
mov dword [ebp - 4], 0
call fcn.100422f0
add esp, 0x1c
mov ecx, edi
push str.The_current_render_resolution._Can_be_changed_in_SteamVR_settings._Restart_required.
call fcn.10012a30
push str.To_recenter_press_the_recenter_button_or_both_shoulder_buttons_on_your_controller.
call fcn.10042370
lea eax, [ebp - 0x84]
mov dword [ebp - 0x84], 0
push eax
push str.Recenter
mov dword [ebp - 0x80], 0
call fcn.10038c50
add esp, 0xc
test al, al
je 0x10012685
mov eax, dword [edi]
mov byte [eax + 0x15], 1
push str.Choose_any_keyboard_key_that_will_be_used_for_recentering._You_can_also_press_both_shoulder_buttons_at_the_same_time_to_recenter.
mov ecx, edi
call fcn.10012a30
mov eax, dword [edi]
push 0x10
push str._.0f
sub esp, 8
add eax, 0x24
mov dword [esp + 4], 0x43c80000
mov dword [esp], 0x42480000
push eax
push str.World_Scale
call fcn.1003f1b0
add esp, 0x18
lea eax, [edi + 0x1c]
push 0x10
push str._.1f
sub esp, 8
mov dword [esp + 4], 0x40600000
mov dword [esp], 0x3f800000
push eax
push str.UI_scale
call fcn.1003f1b0
add esp, 0x18
mov ecx, edi
push str.How_much_the_UI_will_be_scaled_up._Higher_values_will_make_the_UI_smaller_towards_the_center.
call fcn.10012a30
mov eax, dword [edi]
push 0xffffffffffffffff
push 2
lea ecx, [eax + 0x3c]
add eax, 0x38
push ecx
push eax
push str.Rendering_method
call fcn.1003d9e0
add esp, 0x14
call fcn.1003a3c0
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ac20
push 0
push 0
push str.Follow_mode
call fcn.10038be0
add esp, 0xc
test al, al
je 0x100127d5
mov eax, dword [edi]
add eax, 0x14
push eax
push str.Use_follow_mode
call fcn.10039630
add esp, 8
mov ecx, edi
push str.Follow_mode_will_make_the_camera_directly_follow_Lara._This_increases_immersion__but_might_also_cause_motion_sickness.
call fcn.10012a30
mov esi, dword [edi]
cmp byte [esi + 0x14], 0
je 0x100127d0
movss xmm0, dword [esi + 0x20]
divss xmm0, dword [0x10078998]
push ecx
movss dword [ebp - 0x80], xmm0
fld dword [ebp - 0x80]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [ebp - 0x80]
movss xmm0, dword [ebp - 0x80]
mulss xmm0, dword [0x10078998]
push 0x10
push str._.1f
sub esp, 8
movss dword [esi + 0x20], xmm0
mov eax, dword [edi]
add eax, 0x20
mov dword [esp + 4], 0x43340000
mov dword [esp], 0
push eax
push str.Rotation_Snapping_degrees
call fcn.1003f1b0
add esp, 0x18
mov ecx, edi
push str.How_many_degrees_your_rotation_will_snap_to._Helps_with_motion_sickness._Set_to_0_to_turn_snapping_off.
call fcn.10012a30
call fcn.1003a3c0
push 0
push 0
push str.Teleport_mode
call fcn.10038be0
add esp, 0xc
test al, al
je 0x1001289c
mov eax, dword [edi]
cmp byte [eax + 0x14], 0
lea eax, [ebp - 0x79]
push eax
push str.Use_teleport_mode
sete byte [ebp - 0x79]
call fcn.10039630
mov eax, dword [edi]
add esp, 8
cmp byte [ebp - 0x79], 0
sete cl
mov byte [eax + 0x14], cl
mov ecx, edi
push str.Teleport_mode_will_make_the_camera_teleport_to_Lara_at_a_set_interval__or_when_she_walks_too_far_away._This_reduces_motion_sickness__at_the_cost_of_immersion.
call fcn.10012a30
mov eax, dword [edi]
cmp byte [eax + 0x14], 0
jne 0x10012897
push 0
push str._.2f
sub esp, 8
add eax, 0x18
mov dword [esp + 4], 0x40400000
mov dword [esp], 0x3f000000
push eax
push str.Update_frequency
call fcn.1003f1b0
add esp, 0x18
mov ecx, edi
push str.How_often_your_camera_will_teleport_to_subject__cutscene__campfire__Lara__etc.__when_not_moving.
call fcn.10012a30
mov eax, dword [edi]
push 0
push str._.2f
sub esp, 8
add eax, 0x1c
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x3f000000
push eax
push str.Distance_multiplier
call fcn.1003f1b0
add esp, 0x18
mov ecx, edi
push str.Distance_from_current_subject__cutscene__campfire__Lara__etc.__to_the_camera_before_the_camera_gets_teleported.
call fcn.10012a30
call fcn.1003a3c0
lea eax, [ebp - 0x84]
mov dword [ebp - 0x84], 0
push eax
push str.Save
mov dword [ebp - 0x80], 0
call fcn.10038c50
add esp, 8
test al, al
je 0x1001298e
push 0x10078430
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0
push str.TR_VR.config
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
push 0
push 0
push dword [ebp - 0x78]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
push dword [ebp - 0x78]
mov eax, dword [edi]
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add eax, 0x14
push 1
push 1
push eax
call esi
push dword [ebp - 0x78]
mov eax, dword [edi]
push 1
add eax, 0x38
push 1
push eax
call esi
push dword [ebp - 0x78]
mov eax, dword [edi]
push 1
add eax, 0x34
push 4
push eax
call esi
mov eax, dword [edi]
add esp, 0x48
add eax, 0x28
push dword [ebp - 0x78]
push 1
push 0xc
push eax
call esi
push dword [ebp - 0x78]
mov eax, dword [edi]
push 1
add eax, 0x24
push 1
push eax
call esi
push dword [ebp - 0x78]
mov eax, dword [edi]
push 1
add eax, 0x18
push 4
push eax
call esi
push dword [ebp - 0x78]
mov eax, dword [edi]
push 1
add eax, 0x1c
push 4
push eax
call esi
mov eax, dword [edi]
add esp, 0x40
add eax, 0x20
push dword [ebp - 0x78]
push 1
push 4
push eax
call esi
push dword [ebp - 0x78]
lea eax, [edi + 0x1c]
push 1
push 4
push eax
call esi
push dword [ebp - 0x78]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x24
sub esp, 8
mov dword [esp + 4], 0xbf800000
mov dword [esp], 0
call fcn.1002b930
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 0
push eax
push str.Load
mov dword [ebp - 0x88], 0
call fcn.10038c50
add esp, 0x10
test al, al
je 0x100129d8
mov ecx, edi
call fcn.100122c0
call fcn.1001d1e0
call fcn.10029030
mov ecx, dword [edi + 0x28]
lea eax, [edi + 0x2c]
push 0
push eax
push 1
mov edx, dword [ecx]
push ecx
call dword [edx + 0x84]
call fcn.1001f050
push eax
call fcn.100441c0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10056f1d
mov esp, ebp
pop ebp
ret 4