Function at 0x409110
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rbx, qword [rax]
mov qword [rsp + 0xf8], rbx
xor ebx, ebx
lea r12, [rsp + 0x40]
mov rdi, rcx
mov rsi, rdx
mov rax, qword [0x005ab200]
mov rdx, rcx
mov rcx, r12
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0
call fcn.00492b60
mov r8d, 0x12
lea rdx, str.objects_info_packs
mov rcx, r12
call fcn.00472fb0
xor edx, edx
mov rcx, r12
call fcn.004728a0
lea r9, [rsp + 0xa0]
xor r8d, r8d
mov rdx, r12
mov rcx, rax
or byte [rsp + 0xa0], 1
mov r13, rax
call fcn.00408be0
mov dword [rsp + 0x28], eax
test eax, eax
jne 0x4092df
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rdi
lea rbx, [rsp + 0x38]
mov qword [rsp + 0x38], rax
movzx r10d, byte [rax]
test r10b, r10b
je 0x4092df
mov r9d, r10d
mov rcx, rax
mov r8d, 0x50
lea rdx, str.P_pack_
jmp 0x40923c
movzx r9d, byte [rcx]
add rcx, 1
add rdx, 1
cmp r8b, r9b
jne 0x409329
movzx r8d, byte [rdx]
test r8b, r8b
jne 0x409238
lea r12, [rsp + 0xd0]
mov r8, rbx
mov qword [rsp + 0x38], rcx
mov rdx, r12
call fcn.00427160
test eax, eax
jne 0x409320
mov rax, qword [rsp + 0x38]
mov r8d, 0x2e
lea rcx, [0x0057a382]
mov rdx, rax
nop dword [rax + rax]
add rdx, 1
add rcx, 1
cmp byte [rdx - 1], r8b
jne 0x409325
movzx r8d, byte [rcx]
test r8b, r8b
jne 0x409290
mov qword [rsp + 0x38], rdx
movzx eax, byte [rdx]
cmp al, 0xa
je 0x409336
test al, al
je 0x409336
mov rax, rdx
jmp 0x4092c4
test dl, dl
je 0x4092d1
movzx edx, byte [rax + 1]
add rax, 1
cmp dl, 0xa
jne 0x4092c0
mov qword [rsp + 0x38], rax
cmp byte [rax], 0
jne 0x409490
mov rcx, r13
call fcn.004c9260
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rdi, qword [rsp + 0xf8]
xor rdi, qword [rax]
jne 0x4095bb
mov eax, dword [rsp + 0x28]
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x38]
movzx r10d, byte [rax]
cmp r10b, 0xa
je 0x4092d1
test r10b, r10b
jne 0x4092c4
jmp 0x4092d1
mov rcx, r12
call fcn.0042eaa0
test eax, eax
jne 0x40949e
mov qword [rsp + 0x60], 0
mov rax, qword [0x005ab200]
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], rax
mov eax, dword [0x005f5b64]
test eax, eax
jne 0x4094cd
lea r14, [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
lea rdi, [rsp + 0x80]
mov rcx, r14
call fcn.00492b60
mov rcx, r12
call fcn.004272e0
mov rcx, r14
lea rdx, str.objects_pack_pack__s.idx
mov r8, rax
call fcn.004737e0
xor edx, edx
mov rcx, r14
call fcn.004728a0
mov rcx, r12
mov r15, rax
call fcn.0042b080
mov rcx, r14
lea rdx, str._s.temp
mov r8, rax
call fcn.004737e0
mov rcx, r14
xor edx, edx
call fcn.004728a0
lea rdx, str._s.temp
mov rcx, rdi
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov r14, rax
mov rax, qword [0x005ab200]
mov r8, r14
mov qword [rsp + 0x90], rax
call fcn.004737e0
mov rcx, qword [rsp + 0x90]
lea rdx, [0x0057a3d7]
call fcn.004b1680
mov rbp, rax
test rax, rax
je 0x409590
mov rdx, rax
xor r9d, r9d
mov r8d, 1
mov rcx, r15
call fcn.00408be0
mov rcx, rbp
mov dword [rsp + 0x2c], eax
call sub.msvcrt.dll_fclose
mov edx, dword [rsp + 0x2c]
mov rcx, rdi
test edx, edx
je 0x4094fa
call fcn.004727a0
mov rdx, r15
lea rcx, str.Unable_to_get_pack_index__s
call fcn.00494950
mov rcx, r14
call fcn.004c9260
mov rcx, r15
call fcn.004c9260
mov rax, qword [rsp + 0x38]
jmp 0x4092d6
add rax, 1
mov qword [rsp + 0x38], rax
jmp 0x409213
mov rcx, r12
call fcn.0042b080
mov rcx, r12
mov rdx, rax
call fcn.0042ba10
mov rbp, rax
test rax, rax
je 0x4094c3
mov rax, qword [rsi]
mov qword [rbp + 0x10], rax
mov qword [rsi], rbp
mov rax, qword [rsp + 0x38]
jmp 0x4092d6
mov rcx, r12
call fcn.004272e0
mov ecx, 2
mov rbp, rax
call qword [fcn.005707a0]
mov r8, rbp
lea rdx, str.Getting_index_for_pack__s_n
mov rcx, rax
call sub.libintl_8.dll_libintl_fprintf
jmp 0x409372
mov rcx, qword [rsp + 0x90]
mov rdx, r14
call fcn.00467f70
mov rcx, rdi
test eax, eax
jne 0x409462
call fcn.004727a0
mov rcx, r15
call fcn.004c9260
test r14, r14
je 0x4094c3
mov rdx, r14
mov rcx, r12
call fcn.0042ba10
mov rbp, rax
test rax, rax
je 0x4095b1
mov rcx, rax
call fcn.0042f470
test eax, eax
je 0x409558
mov rcx, r14
call fcn.004c9260
jmp 0x4094c3
mov rcx, rbp
call fcn.0042bb70
mov rcx, r12
call fcn.0042b080
mov rcx, r14
mov rdx, rax
call fcn.00467f70
mov rcx, r14
mov r12d, eax
call fcn.004c9260
test r12d, r12d
je 0x4094b9
jmp 0x4094c3
mov rdx, qword [rsp + 0x90]
lea rcx, str.Unable_to_open_local_file__s
call fcn.00494950
mov rcx, rdi
call fcn.004727a0
jmp 0x409467
mov rcx, r14
call fcn.004af900
jmp 0x409546
call sub.libssp_0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]
nop dword [rax]