Function at 0x40e560
Capabilities:
Set thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, rcx
mov ebp, edx
mov ecx, 0x40000
xor edx, edx
call sym.OPENSSL_init_crypto
test eax, eax
je 0x40e5dd
lea rdx, [sym.err_do_init_ossl_]
lea rcx, [0x0063ea9c]
call sym.CRYPTO_THREAD_run_once
test eax, eax
je 0x40e5dd
mov eax, dword [0x0063e260]
test eax, eax
je 0x40e5dd
lea rcx, [0x0063ea94]
call sym.CRYPTO_THREAD_get_local
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x40e5dd
test rax, rax
je 0x40e610
movsxd rbx, dword [r12 + 0x200]
lea rsi, [r12 + rbx*4]
test byte [rsi + 0x100], 1
jne 0x40e5f0
mov qword [r12 + rbx*8 + 0x80], rdi
mov dword [rsi + 0x100], ebp
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [r12 + rbx*8 + 0x80]
mov r8d, 0x2f9
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
jmp 0x40e5cf
mov rdx, 0xffffffffffffffff
lea rcx, [0x0063ea94]
call sym.CRYPTO_THREAD_set_local
test eax, eax
je 0x40e5dd
mov r8d, 0x2b1
lea rdx, str.crypto_err_err.c
mov ecx, 0x208
call sym.CRYPTO_zalloc
mov r12, rax
test rax, rax
je 0x40e841
mov ecx, 2
call sym.ossl_init_thread_start
test eax, eax
je 0x40e680
mov rdx, r12
lea rcx, [0x0063ea94]
call sym.CRYPTO_THREAD_set_local
test eax, eax
je 0x40e680
xor edx, edx
mov ecx, 2
call sym.OPENSSL_init_crypto
jmp 0x40e5ba
test byte [r12 + 0x100], 1
jne 0x40e859
mov dword [r12 + 0x100], 0
test byte [r12 + 0x104], 1
jne 0x40eade
mov dword [r12 + 0x104], 0
test byte [r12 + 0x108], 1
jne 0x40eab3
mov dword [r12 + 0x108], 0
test byte [r12 + 0x10c], 1
jne 0x40ea88
mov dword [r12 + 0x10c], 0
test byte [r12 + 0x110], 1
jne 0x40ea5d
mov dword [r12 + 0x110], 0
test byte [r12 + 0x114], 1
jne 0x40ea32
mov dword [r12 + 0x114], 0
test byte [r12 + 0x118], 1
jne 0x40ea07
mov dword [r12 + 0x118], 0
test byte [r12 + 0x11c], 1
jne 0x40e9dc
mov dword [r12 + 0x11c], 0
test byte [r12 + 0x120], 1
jne 0x40e9b1
mov dword [r12 + 0x120], 0
test byte [r12 + 0x124], 1
jne 0x40e986
mov dword [r12 + 0x124], 0
test byte [r12 + 0x128], 1
jne 0x40e95b
mov dword [r12 + 0x128], 0
test byte [r12 + 0x12c], 1
jne 0x40e930
mov dword [r12 + 0x12c], 0
test byte [r12 + 0x130], 1
jne 0x40e905
mov dword [r12 + 0x130], 0
test byte [r12 + 0x134], 1
jne 0x40e8da
mov dword [r12 + 0x134], 0
test byte [r12 + 0x138], 1
jne 0x40e8af
mov dword [r12 + 0x138], 0
test byte [r12 + 0x13c], 1
jne 0x40e884
mov r8d, 0x107
lea rdx, str.crypto_err_err.c
mov rcx, r12
mov dword [r12 + 0x13c], 0
call sym.CRYPTO_free
xor edx, edx
lea rcx, [0x0063ea94]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.CRYPTO_THREAD_set_local
mov rcx, qword [r12 + 0x80]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0x80], 0
jmp 0x40e68f
mov rcx, qword [r12 + 0xf8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xf8], 0
jmp 0x40e820
mov rcx, qword [r12 + 0xf0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xf0], 0
jmp 0x40e809
mov rcx, qword [r12 + 0xe8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xe8], 0
jmp 0x40e7ee
mov rcx, qword [r12 + 0xe0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xe0], 0
jmp 0x40e7d3
mov rcx, qword [r12 + 0xd8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xd8], 0
jmp 0x40e7b8
mov rcx, qword [r12 + 0xd0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xd0], 0
jmp 0x40e79d
mov rcx, qword [r12 + 0xc8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xc8], 0
jmp 0x40e782
mov rcx, qword [r12 + 0xc0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xc0], 0
jmp 0x40e767
mov rcx, qword [r12 + 0xb8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xb8], 0
jmp 0x40e74c
mov rcx, qword [r12 + 0xb0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xb0], 0
jmp 0x40e731
mov rcx, qword [r12 + 0xa8]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xa8], 0
jmp 0x40e716
mov rcx, qword [r12 + 0xa0]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0xa0], 0
jmp 0x40e6fb
mov rcx, qword [r12 + 0x98]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0x98], 0
jmp 0x40e6e0
mov rcx, qword [r12 + 0x90]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0x90], 0
jmp 0x40e6c5
mov rcx, qword [r12 + 0x88]
mov r8d, 0x105
lea rdx, str.crypto_err_err.c
call sym.CRYPTO_free
mov qword [r12 + 0x88], 0
jmp 0x40e6aa