Function at 0x496960
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, 0x138
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x48], rax
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rbx, rcx
movsxd rcx, edx
mov dword [rsp + 0x188], edx
mov rbp, r8
mov rdi, qword [rax]
mov qword [rsp + 0x128], rdi
xor edi, edi
xor edi, edi
mov rax, qword [0x005ab200]
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xa0], rax
mov rax, qword [0x005ab190]
mov qword [rsp + 0x78], 0
mov dword [rax], 0
mov rax, rcx
mov qword [rsp + 0x90], 0
shr rax, 0x3b
mov qword [rsp + 0x98], 0
setne dil
jne 0x497234
shl rcx, 5
call fcn.004996e0
cmp qword [rsp + 0x58], 0
mov qword [rsp + 0x50], rax
je 0x496b80
lea r14, [rsp + 0x90]
mov rcx, r14
call fcn.00443ea0
mov r13, rax
test rax, rax
je 0x497207
mov r8d, dword [rbx + 0x30]
test r8d, r8d
je 0x496b98
mov ecx, dword [rsp + 0x188]
test ecx, ecx
jle 0x496bc0
mov edx, dword [rsp + 0x188]
mov rax, qword [rsp + 0x50]
lea r12d, [rdx - 1]
mov rsi, rax
add r12, 1
shl r12, 5
add r12, rax
jmp 0x496a91
add rsi, 0x20
add rbp, 8
cmp r12, rsi
je 0x496bc0
mov r15, qword [rbp]
mov rdx, rsi
mov rcx, r15
call fcn.00427150
test eax, eax
je 0x496aed
xor edx, edx
mov rcx, r15
call fcn.00441aa0
test eax, eax
jne 0x496fe0
mov rcx, r15
call fcn.00452030
mov rcx, rbx
mov r15, rax
mov rdx, rax
call qword [rbx + 8]
test eax, eax
jne 0x496fd8
movdqu xmm0, xmmword [r15 + 8]
mov rcx, r15
movups xmmword [rsi], xmm0
movdqu xmm1, xmmword [r15 + 0x18]
movups xmmword [rsi + 0x10], xmm1
call fcn.004c9260
mov rcx, rsi
call fcn.0051bff0
mov rcx, rbx
mov rdx, rax
call fcn.00496620
test eax, eax
je 0x496a80
mov qword [rsp + 0x48], 0
mov r15d, 0xffffffff
lea r12, [rsp + 0x70]
mov rcx, r13
call fcn.00442710
mov rcx, qword [rsp + 0x48]
call fcn.004c9260
mov rcx, qword [rsp + 0x50]
call fcn.004c9260
mov rcx, r14
call fcn.004727a0
mov rcx, r12
call fcn.004727a0
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rdi, qword [rsp + 0x128]
xor rdi, qword [rax]
jne 0x497248
mov eax, r15d
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rbx + 0x30]
xor r13d, r13d
lea r14, [rsp + 0x90]
test r8d, r8d
jne 0x496a4d
xor edx, edx
lea rcx, [0x004965e0]
call fcn.00443f40
lea rcx, [0x005edd88]
call fcn.004d9f00
jmp 0x496a4d
mov qword [rsp + 0x68], 0
mov edx, dword [rbx + 0x2c]
test edx, edx
jne 0x497160
mov rcx, qword [0x005edd80]
mov r15, qword [0x005ab240]
test rcx, rcx
jne 0x496c52
jmp 0x496eb0
cmp al, 2
je 0x496cc3
cmp al, 4
je 0x496df8
cmp al, 6
je 0x496c31
cmp al, 8
jne 0x49704f
mov rcx, r12
call fcn.0047ecd0
test eax, eax
jne 0x496db4
mov rdx, qword [r12 + 0x28]
mov rcx, rbx
call fcn.00496620
test eax, eax
jne 0x496db4
mov rcx, qword [rsp + 0x68]
add rdi, 1
mov rdx, rdi
call fcn.00436d50
mov rcx, qword [0x005edd80]
test rcx, rcx
je 0x496eb0
mov rax, qword [rcx + 8]
mov r12, qword [rcx]
mov qword [0x005edd80], rax
call fcn.004c9260
cmp qword [0x005edd80], 0
je 0x496de0
test byte [r12 + 4], 4
jne 0x496c91
lea rsi, [r12 + 8]
mov rcx, rbx
mov rdx, rsi
call qword [rbx + 0x18]
test eax, eax
jne 0x497082
movzx eax, byte [r12]
and eax, 0xe
jne 0x496bf0
mov rax, qword [0x005ab240]
lea rdx, [r12 + 8]
mov rcx, qword [rax]
call fcn.0051c220
movzx eax, byte [r12]
and eax, 0xe
cmp al, 2
jne 0x496bf8
mov rbp, qword [0x005ab240]
xor r8d, r8d
mov rdx, r12
mov rcx, qword [rbp]
call fcn.004d9ca0
test eax, eax
jne 0x496db4
mov rax, qword [0x005edd88]
lea rsi, [0x005edd88]
test rax, rax
jne 0x496d19
jmp 0x496d27
mov edx, 1
mov rcx, rsi
call fcn.004d9f30
mov rax, qword [0x005edd88]
test rax, rax
je 0x496d27
mov rax, qword [rax]
mov rdx, qword [r12 + 0x28]
cmp qword [rax + 0x28], rdx
jae 0x496d00
test byte [r12 + 4], 1
jne 0x496c31
movdqu xmm2, xmmword [r12 + 8]
lea rcx, [r12 + 8]
movaps xmmword [0x005edda0], xmm2
movdqu xmm3, xmmword [r12 + 0x18]
movaps xmmword [0x005eddb0], xmm3
call fcn.00427370
lea rdx, str.walk__s_n
mov rcx, rbx
mov r8, rax
call fcn.004966d0
mov rcx, qword [rbp]
mov rdx, r12
call fcn.004d9310
mov rcx, rbx
mov rdx, rax
call fcn.00496620
test eax, eax
jne 0x496db4
mov rsi, qword [r12 + 0x30]
test rsi, rsi
jne 0x496da5
jmp 0x496c31
mov rsi, qword [rsi + 8]
test rsi, rsi
je 0x496c31
mov rdx, qword [rsi]
mov rcx, rbx
call fcn.00496620
test eax, eax
je 0x496d98
lea rcx, [rsp + 0x68]
mov r15d, 0xffffffff
lea r12, [rsp + 0x70]
call fcn.00436fb0
mov qword [rsp + 0x48], 0
jmp 0x496b1c
lea rax, [0x005edd80]
mov qword [0x005737d0], rax
jmp 0x496c73
xor edx, edx
mov rcx, r12
call fcn.004904a0
test eax, eax
jne 0x496db4
mov rdx, qword [r12 + 0x28]
mov r8d, dword [r12 + 0x30]
lea rbp, [rsp + 0xe0]
lea rsi, [rsp + 0xb0]
mov rcx, rbp
call fcn.00490f50
mov rdx, rsi
mov rcx, rbp
call fcn.00491410
test eax, eax
je 0x496e87
mov eax, dword [rsp + 0xdc]
and eax, 0xf000
cmp eax, 0xe000
je 0x496e28
mov rcx, qword [r15]
mov rdx, rsi
cmp eax, 0x4000
je 0x496e98
call fcn.004cdcd0
test rax, rax
je 0x496db4
mov rdx, rax
mov rcx, rbx
call fcn.00496620
test eax, eax
jne 0x496db4
mov rdx, rsi
mov rcx, rbp
call fcn.00491410
test eax, eax
jne 0x496e37
mov rcx, r12
call fcn.004904c0
jmp 0x496c31
call fcn.0048ff20
test rax, rax
jne 0x496e65
jmp 0x496db4
lea rcx, [rsp + 0x68]
call fcn.00436fb0
cmp qword [rsp + 0x58], 0
je 0x497148
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x496ee4
mov rdx, rax
lea rcx, str.fetch_from__s
call fcn.004751e0
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x188]
test eax, eax
jle 0x497009
mov rax, qword [rsp + 0x48]
mov r15, qword [rsp + 0x58]
lea r12, [rsp + 0x70]
lea rdi, str.fetch__unknown_
mov rbx, qword [rsp + 0x50]
lea rbp, [0x0058d10d]
test rax, rax
cmovne rdi, rax
mov eax, dword [rsp + 0x188]
sub eax, 1
lea rsi, [r15 + rax*8 + 8]
jmp 0x496f82
mov byte [rax], 0
mov r8, qword [r15]
mov rdx, rbp
mov rcx, r12
call fcn.004737e0
mov qword [rsp + 0x30], r14
xor r9d, r9d
mov r8, rbx
mov qword [rsp + 0x28], rdi
mov rdx, qword [rsp + 0x80]
mov rcx, r13
mov dword [rsp + 0x20], 0
call fcn.00442940
test eax, eax
jne 0x497030
add r15, 8
add rbx, 0x20
cmp rsi, r15
je 0x497010
mov r8, qword [r15]
test r8, r8
je 0x496f71
mov rax, qword [rsp + 0x80]
cmp rax, qword [0x005ab200]
mov qword [rsp + 0x78], 0
jne 0x496f30
mov rax, qword [0x005ab200]
cmp byte [rax], 0
je 0x496f36
mov r8d, 0xa8
lea rdx, [0x0058d0f1]
lea rcx, [0x0058d0fa]
call qword [sym.imp.msvcrt.dll__assert]
mov r8, qword [r15]
jmp 0x496f36
mov rcx, r15
call fcn.004c9260
mov rdx, qword [rbp]
mov r15d, 0xffffffff
lea r12, [rsp + 0x70]
lea rcx, str.Could_not_interpret_response_from_server__s_as_something_to_pull
call fcn.00494950
mov qword [rsp + 0x48], 0
jmp 0x496b1c
lea r12, [rsp + 0x70]
nop
mov rdx, r14
mov rcx, r13
call fcn.00444f20
mov r15d, eax
test eax, eax
je 0x496b1c
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0xa0]
lea rcx, [0x0058cfff]
mov r15d, 0xffffffff
call fcn.00494950
jmp 0x496b1c
lea rcx, [r12 + 8]
call fcn.00427370
movzx ecx, byte [r12]
mov rbx, rax
shr cl, 1
and ecx, 7
call fcn.0051bbf0
mov r8, rbx
lea rcx, str.Unable_to_determine_requirements_of_type__s_for__s
mov rdx, rax
call fcn.00494950
jmp 0x496db4
lea rcx, [rsp + 0x68]
lea rdi, [0x0058cfd3]
call fcn.00436fb0
mov rcx, rsi
call fcn.00427370
mov rbx, rax
movzx eax, byte [r12]
test al, 0xe
jne 0x497197
mov ecx, 2
mov rsi, qword [fcn.005707a0]
call rsi
mov r9, rbx
mov r8, rdi
lea rdx, str.Cannot_obtain_needed__s__s_n
mov rcx, rax
call sub.libintl_8.dll_libintl_fprintf
mov rax, qword [0x005ab240]
mov rax, qword [rax]
mov rax, qword [rax + 0xc8]
cmp qword [rax + 0x10], 0x20
je 0x4971bc
mov rcx, qword [0x005aafd0]
mov rdx, qword [0x005edda8]
mov rax, qword [0x005edda0]
xor rdx, qword [rcx + 8]
xor rax, qword [rcx]
or rdx, rax
je 0x497181
mov eax, 1
xor eax, 1
test eax, eax
jne 0x496b08
lea rcx, [0x005edda0]
call fcn.00427370
mov ecx, 2
mov rbx, rax
call rsi
mov r8, rbx
lea rdx, str.while_processing_commit__s._n
mov rcx, rax
call sub.libintl_8.dll_libintl_fprintf
jmp 0x496b08
mov qword [rsp + 0x48], 0
xor r15d, r15d
lea r12, [rsp + 0x70]
jmp 0x496b1c
call fcn.00426640
lea rcx, [0x0058cfc0]
test eax, eax
je 0x4971ab
xor edx, edx
call fcn.00436d70
mov qword [rsp + 0x68], rax
jmp 0x496bd4
mov eax, dword [rcx + 0x10]
cmp dword [0x005eddb0], eax
jne 0x49710b
xor eax, eax
jmp 0x497110
shr al, 1
mov ecx, eax
and ecx, 7
call fcn.0051bbf0
mov rdi, rax
jmp 0x4970ab
lea rcx, str.Fetching_objects
call fcn.0056e6a8
mov rcx, rax
jmp 0x497170
mov rax, qword [0x005aafd0]
mov rcx, qword [0x005edda8]
mov rdx, qword [0x005edda0]
xor rcx, qword [rax + 8]
xor rdx, qword [rax]
or rcx, rdx
jne 0x49710b
mov rcx, qword [0x005eddb8]
mov rdx, qword [0x005eddb0]
xor rcx, qword [rax + 0x18]
xor rdx, qword [rax + 0x10]
or rcx, rdx
jne 0x49710b
xor eax, eax
jmp 0x497110
mov rdx, qword [rsp + 0xa0]
mov r15d, 0xffffffff
lea r12, [rsp + 0x70]
lea rcx, [0x0058cfff]
call fcn.00494950
mov qword [rsp + 0x48], 0
jmp 0x496b1c
mov r8, rcx
mov edx, 0x20
lea rcx, [0x0058cfe0]
call fcn.00494770
call sub.libssp_0.dll___stack_chk_fail
nop
nop