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

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x50
mov rbx, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rax, qword [rbx]
mov qword [rsp + 0x48], rax
xor eax, eax
mov r12, rcx
mov eax, dword [rdx + 0x50]
mov ecx, dword [r8 + 0x40]
mov rsi, r8
cmp ecx, eax
jae 0x4dbc5b
nop word [rax + rax]
mov rdx, qword [rdx + 0x58]
mov eax, dword [rdx + 0x50]
cmp eax, ecx
ja 0x4dbc50
mov r8, qword [0x005ab240]
sub ecx, eax
lea r10, [rsp + 0x20]
mov r8, qword [r8]
mov r8, qword [r8 + 0xc8]
mov r8, qword [r8 + 0x10]
lea r9, [r8 + 0x10]
imul rcx, r9
add rcx, qword [rdx + 0x70]
mov rdx, rcx
mov rcx, r10
call sub.msvcrt.dll_memcpy
mov rcx, r12
mov rdx, rax
call fcn.0048ff20
mov qword [rsi + 0x38], rax
mov rsi, qword [rsp + 0x48]
xor rsi, qword [rbx]
jne 0x4dbcb0
add rsp, 0x50
pop rbx
pop rsi
pop r12
ret
call sub.libssp_0.dll___stack_chk_fail
nop
nop word cs:[rax + rax]
push r12
sub rsp, 0x20
mov rcx, rdx
mov r12, r9
call fcn.00427370
mov rcx, r12
mov rdx, rax
call fcn.00476f10
xor eax, eax
add rsp, 0x20
pop r12
ret
sub rsp, 0x28
mov rax, qword [rdx + 0x38]
mov r8, rdx
test rax, rax
je 0x4dd238
add rsp, 0x28
ret
cmp dword [rdx + 0x40], 0xffffffff
je 0x4dd24f
mov rax, qword [rcx + 0x10]
mov rdx, qword [rax + 0x58]
add rsp, 0x28
jmp 0x4dbc20
lea r8, str.get_commit_tree_in_graph_one_called_from_non_commit_graph_commit
mov edx, 0x2e9
lea rcx, str.commit_graph.c
call fcn.00494ad0
nop
nop dword [rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [rsp + 0x130], r8d
mov r12, rcx
mov rbx, rdx
mov rdi, qword [rax]
mov qword [rsp + 0xc8], rdi
xor edi, edi
mov qword [rsp + 0x58], 0
test rdx, rdx
je 0x4ddb9f
mov rcx, rdx
call fcn.004dbbb0
mov dword [0x005f34c0], eax
mov r13d, eax
test eax, eax
je 0x4dd300
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rdi, qword [rsp + 0xc8]
xor rdi, qword [rax]
jne 0x4ddcc8
mov eax, r13d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 1
lea rcx, [0x005950fd]
lea rsi, [rsp + 0xa0]
call fcn.004b0de0
xor edx, edx
mov ecx, eax
call fcn.004e70b0
mov r8d, dword [rbx + 0x10]
mov rdx, qword [rbx + 8]
mov r13, rax
movzx eax, byte [rbx + 0x18]
mov rcx, r13
sub r8d, eax
call fcn.004e6f20
mov r8d, 1
mov rdx, rsi
mov rcx, r13
call fcn.004e6da0
mov rbp, qword [0x005ab240]
movzx eax, byte [rbx + 0x18]
mov rdi, qword [rbx + 0x10]
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rbp]
sub rdi, rax
mov rax, qword [rbx + 8]
mov rdx, qword [rdx + 0xc8]
add rax, rdi
mov r8, qword [rdx + 0x10]
xor rcx, qword [rax + 8]
mov rdx, qword [rsp + 0xa0]
xor rdx, qword [rax]
cmp r8, 0x20
je 0x4ddc6e
or rcx, rdx
je 0x4ddaf4
mov eax, 1
xor eax, 1
test eax, eax
je 0x4ddbe3
mov r15d, dword [rbx + 0x1c]
test r15d, r15d
je 0x4ddcab
mov rdx, qword [rbx + 0x68]
lea rdi, [rsp + 0x80]
xor r15d, r15d
xor esi, esi
mov rcx, rdi
call sub.msvcrt.dll_memcpy
nop dword [rax]
movdqa xmm0, xmmword [rsp + 0x80]
movzx edx, byte [rsp + 0x80]
movdqa xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
cmp r15d, edx
jae 0x4dd468
mov r14d, r15d
shl r14, 2
jmp 0x4dd433
mov edx, r15d
mov r9d, esi
mov r8d, r13d
call fcn.004dbd40
movzx edx, byte [rsp + 0x80]
add r15d, 1
add r14, 4
cmp edx, r15d
jbe 0x4dd468
mov rax, qword [rbx + 0x60]
mov r13d, dword [rax + r14]
bswap r13d
cmp esi, r13d
je 0x4dd426
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
jne 0x4dd410
lea rcx, str.commit_graph_has_incorrect_fanout_value:_fanout__d____u____u
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd410
mov rdx, rdi
mov rcx, r12
call fcn.004d8ab0
mov r8, rax
test byte [rax], 1
jne 0x4dd48e
mov rdx, rbx
mov rcx, r12
call fcn.004dc250
test eax, eax
je 0x4dd530
mov eax, dword [rbx + 0x1c]
add esi, 1
cmp eax, esi
jbe 0x4dd565
mov r13, qword [rbp]
movzx edx, byte [rbx + 0x18]
mov rcx, rdi
mov rax, qword [r13 + 0xc8]
imul edx, esi
add rdx, qword [rbx + 0x68]
mov r8, qword [rax + 0x10]
call sub.msvcrt.dll_memcpy
test esi, esi
je 0x4dd3d8
mov rax, qword [r13 + 0xc8]
lea r13, [rsp + 0x60]
cmp qword [rax + 0x10], 0x20
je 0x4dda58
mov r8d, 0x14
mov rdx, rdi
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
js 0x4dd3d8
mov rcx, rdi
call fcn.00427370
mov rcx, r13
mov r14, rax
call fcn.00427370
mov r13, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddae0
mov r8, r14
mov rdx, r13
call fcn.004dbd40
jmp 0x4dd3d8
mov rcx, rdi
call fcn.00427370
mov r13, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddacc
mov rdx, r13
add esi, 1
call fcn.004dbd40
mov eax, dword [rbx + 0x1c]
cmp eax, esi
ja 0x4dd49c
cmp r15d, 0xff
ja 0x4dd5d0
mov r14d, r15d
lea rdi, [0x00594c70]
shl r14, 2
jmp 0x4dd5a2
mov r9d, esi
mov r8d, r13d
mov edx, r15d
call fcn.004dbd40
add r15d, 1
add r14, 4
cmp r15d, 0x100
je 0x4dd5d0
mov eax, dword [rbx + 0x1c]
mov rdx, qword [rbx + 0x60]
mov r13d, dword [rdx + r14]
bswap r13d
cmp r13d, eax
je 0x4dd58e
call fcn.00426640
mov rcx, rdi
test eax, eax
jne 0x4dd580
lea rcx, str.commit_graph_has_incorrect_fanout_value:_fanout__d____u____u
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd580
mov r13d, dword [0x005f34c0]
mov eax, r13d
and eax, 0xfffffffd
mov dword [rsp + 0x4c], eax
jne 0x4dd2cc
mov eax, dword [rbx + 0x1c]
test byte [rsp + 0x130], 2
jne 0x4ddb07
xor r14d, r14d
lea rdi, [rsp + 0x80]
test eax, eax
jne 0x4dd641
jmp 0x4dd97e
mov rcx, rdi
call fcn.00427370
mov r13, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4dda40
mov rdx, r13
call fcn.004dbd40
cmp r14d, dword [rbx + 0x1c]
jae 0x4dd97e
mov rcx, qword [rsp + 0x58]
lea edx, [r14 + 1]
mov esi, r14d
mov r14, rdx
call fcn.00436d50
mov rax, qword [rbp]
movzx edx, byte [rbx + 0x18]
mov rcx, rdi
mov rax, qword [rax + 0xc8]
imul edx, esi
add rdx, qword [rbx + 0x68]
mov r8, qword [rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rdx, rdi
mov rcx, r12
call fcn.004d8ab0
mov rcx, r12
mov qword [rsp + 0x28], rax
call fcn.004cb810
mov rdx, rdi
mov rcx, r12
mov r8, rax
call fcn.0051bd90
mov rcx, qword [rbp]
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
mov qword [rsp + 0x40], rax
call fcn.004d98e0
test eax, eax
jne 0x4dd610
mov rcx, qword [rsp + 0x40]
call fcn.004d9330
mov rcx, qword [rsp + 0x28]
mov rsi, rax
mov rax, qword [rcx + 0x38]
test rax, rax
je 0x4dda18
mov rdx, qword [rbp]
lea rcx, [rax + 8]
mov rax, qword [rax + 8]
mov rdx, qword [rdx + 0xc8]
cmp qword [rdx + 0x10], 0x20
mov rdx, qword [rcx + 8]
je 0x4ddb6f
xor rdx, qword [rsi + 8]
xor rax, qword [rsi]
or rdx, rax
jne 0x4dd715
mov eax, dword [rsi + 0x10]
cmp dword [rcx + 0x10], eax
je 0x4ddb98
mov eax, 1
xor eax, 1
test eax, eax
je 0x4dda70
mov rax, qword [rsp + 0x28]
xor esi, esi
mov r13, qword [rax + 0x30]
mov rax, qword [rsp + 0x40]
mov r15, qword [rax + 0x30]
test r13, r13
je 0x4dd895
test r15, r15
je 0x4dd9cd
mov dword [rsp + 0x48], r14d
jmp 0x4dd77b
mov eax, dword [r8 + 0x44]
mov r13, qword [r13 + 8]
mov r15, qword [r15 + 8]
cmp esi, eax
cmovb esi, eax
test r13, r13
je 0x4dd890
test r15, r15
je 0x4dd9c8
mov r8, qword [r13]
test byte [r8], 1
jne 0x4dd794
mov rdx, rbx
mov rcx, r12
call fcn.004dc250
mov r8, qword [r13]
mov rax, qword [rbp]
mov r10, qword [r15]
lea r9, [r8 + 8]
mov rdx, qword [r9 + 8]
mov rax, qword [rax + 0xc8]
lea rcx, [r10 + 8]
cmp qword [rax + 0x10], 0x20
mov rax, qword [r8 + 8]
je 0x4dd838
xor rdx, qword [rcx + 8]
xor rax, qword [r10 + 8]
or rdx, rax
jne 0x4dd7d3
mov eax, dword [rcx + 0x10]
cmp dword [r9 + 0x10], eax
je 0x4dd85e
mov eax, 1
xor eax, 1
test eax, eax
jne 0x4dd758
call fcn.00427370
mov qword [rsp + 0x38], rax
mov rax, qword [r13]
lea rcx, [rax + 8]
call fcn.00427370
mov rcx, rdi
mov qword [rsp + 0x30], rax
call fcn.00427370
mov r14, rax
call fcn.00426640
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
lea rcx, [0x00594c70]
test eax, eax
je 0x4dd868
mov rdx, r14
call fcn.004dbd40
mov r8, qword [r13]
jmp 0x4dd758
xor rdx, qword [rcx + 8]
xor rax, qword [r10 + 8]
or rdx, rax
jne 0x4dd7d3
mov rax, qword [r9 + 0x10]
mov rdx, qword [r9 + 0x18]
xor rax, qword [rcx + 0x10]
xor rdx, qword [rcx + 0x18]
or rdx, rax
jne 0x4dd7d3
xor eax, eax
jmp 0x4dd7d8
lea rcx, str.commit_graph_parent_for__s_is__s____s
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
call fcn.0056e6a8
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov rcx, rax
jmp 0x4dd824
mov r14d, dword [rsp + 0x48]
test r15, r15
je 0x4dd8c5
mov rcx, rdi
call fcn.00427370
mov qword [rsp + 0x30], rax
call fcn.00426640
mov rdx, qword [rsp + 0x30]
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddbb6
call fcn.004dbd40
mov rax, qword [rsp + 0x28]
mov r8d, dword [rax + 0x44]
test r8d, r8d
je 0x4dda06
cmp dword [rsp + 0x4c], 1
je 0x4ddc27
xor eax, eax
cmp esi, 0x3fffffff
setne al
add esi, eax
cmp r8d, esi
je 0x4dd92c
mov rcx, rdi
mov dword [rsp + 0x38], r8d
call fcn.00427370
mov qword [rsp + 0x30], rax
call fcn.00426640
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x38]
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddb33
mov r9d, esi
call fcn.004dbd40
mov rax, qword [rsp + 0x28]
mov rsi, qword [rax + 0x28]
mov rax, qword [rsp + 0x40]
mov r13, qword [rax + 0x28]
cmp rsi, r13
je 0x4dd637
mov rcx, rdi
call fcn.00427370
mov r15, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddb5b
mov r9, r13
mov r8, rsi
mov rdx, r15
call fcn.004dbd40
cmp r14d, dword [rbx + 0x1c]
jb 0x4dd641
lea rcx, [rsp + 0x58]
call fcn.00436fb0
mov r13d, dword [0x005f34c0]
test byte [rsp + 0x130], 1
jne 0x4dd2cc
mov rdx, qword [rbx + 0x58]
test rdx, rdx
je 0x4dd2cc
mov r8d, dword [rsp + 0x130]
mov rcx, r12
call 0x4dd270
or r13d, eax
jmp 0x4dd2cc
mov r14d, dword [rsp + 0x48]
mov rcx, rdi
call fcn.00427370
mov r15, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddbcf
mov rdx, r15
call fcn.004dbd40
mov rax, qword [rsp + 0x28]
mov r8d, dword [rax + 0x44]
test r8d, r8d
jne 0x4dd8d7
mov dword [rsp + 0x4c], 1
jmp 0x4dd637
cmp dword [rcx + 0x40], 0xffffffff
je 0x4ddccd
mov r8, qword [rsp + 0x28]
mov rdx, rbx
mov rcx, r12
call 0x4dbc20
jmp 0x4dd6db
lea rcx, str.failed_to_parse_commit__s_from_object_database_for_commit_graph
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd62f
mov r8d, 0x20
mov rdx, rdi
mov rcx, r13
call sub.msvcrt.dll_memcmp
jmp 0x4dd4ee
mov rcx, qword [rsp + 0x40]
call fcn.004d9330
mov rcx, rax
call fcn.00427370
mov rcx, qword [rsp + 0x28]
mov r15, rax
call fcn.004d9330
mov rcx, rax
call fcn.00427370
mov rcx, rdi
mov rsi, rax
call fcn.00427370
mov r13, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddc5a
mov r9, r15
mov r8, rsi
mov rdx, r13
call fcn.004dbd40
jmp 0x4dd725
lea rcx, str.failed_to_parse_commit__s_from_commit_graph
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd54f
lea rcx, str.commit_graph_has_incorrect_OID_order:__s_then__s
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd520
mov eax, dword [rax + 0x10]
cmp dword [rsi + 0x10], eax
jne 0x4dd39f
xor eax, eax
jmp 0x4dd3a4
mov r13d, eax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddcb4
mov rdx, r13
call fcn.00436dc0
mov qword [rsp + 0x58], rax
mov eax, dword [rbx + 0x1c]
jmp 0x4dd5f8
lea rcx, str.commit_graph_generation_for_commit__s_is__u____u
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], r8d
call fcn.0056e6a8
mov rdx, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x30]
mov rcx, rax
jmp 0x4dd924
lea rcx, str.commit_date_for_commit__s_in_commit_graph_is__I64u____I64u
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd966
xor rdx, qword [rsi + 8]
xor rax, qword [rsi]
or rdx, rax
jne 0x4dd715
mov rax, qword [rcx + 0x10]
mov rdx, qword [rcx + 0x18]
xor rax, qword [rsi + 0x10]
xor rdx, qword [rsi + 0x18]
or rdx, rax
jne 0x4dd715
xor eax, eax
jmp 0x4dd71a
lea rcx, str.no_commit_graph_file_loaded
mov r13d, 1
call fcn.004dbd40
jmp 0x4dd2cc
lea rcx, str.commit_graph_parent_list_for_commit__s_terminates_early
call fcn.0056e6a8
mov rdx, qword [rsp + 0x30]
mov rcx, rax
jmp 0x4dd8c0
lea rcx, str.commit_graph_parent_list_for_commit__s_is_too_long
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd9ec
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
je 0x4ddc97
call fcn.004dbd40
mov r15d, dword [rbx + 0x1c]
mov dword [0x005f34c0], 2
test r15d, r15d
je 0x4ddcab
mov rax, qword [rbp]
mov rax, qword [rax + 0xc8]
mov r8, qword [rax + 0x10]
jmp 0x4dd3bc
mov rcx, rdi
call fcn.00427370
mov r13, rax
call fcn.00426640
lea rcx, [0x00594c70]
test eax, eax
jne 0x4dd62f
lea rcx, str.commit_graph_has_non_zero_generation_number_for_commit__s__but_zero_elsewhere
call fcn.0056e6a8
mov rcx, rax
jmp 0x4dd62f
lea rcx, str.root_tree_OID_for_commit__s_in_commit_graph_is__s____s
call fcn.0056e6a8
mov rcx, rax
jmp 0x4ddab9
or rcx, rdx
jne 0x4dd39f
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
xor rdx, qword [rax + 0x10]
xor rcx, qword [rax + 0x18]
or rcx, rdx
jne 0x4dd39f
xor eax, eax
jmp 0x4dd3a4
lea rcx, str.the_commit_graph_file_has_incorrect_checksum_and_is_likely_corrupt
call fcn.0056e6a8
mov rcx, rax
jmp 0x4ddbf7
xor eax, eax
xor esi, esi
jmp 0x4dd56e
lea rcx, str.Verifying_commits_in_commit_graph
call fcn.0056e6a8
mov rcx, rax
jmp 0x4ddb1e
call sub.libssp_0.dll___stack_chk_fail
lea r8, str.get_commit_tree_in_graph_one_called_from_non_commit_graph_commit
mov edx, 0x2e9
lea rcx, str.commit_graph.c
call fcn.00494ad0
nop
nop word cs:[rax + rax]