Function at 0x1400b5640
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x1402d7d18]
xor rax, rsp
mov qword [rbp], rax
mov r13, r9
mov rsi, r8
mov qword [rsp + 0x70], r8
mov rdi, rdx
mov r15, rcx
mov qword [rsp + 0x30], rcx
lea rax, [0x1402daa50]
mov rcx, qword [0x1402daa50]
cmp rcx, rax
je 0x1400b56cf
test dword [rcx + 0x44], 0x4000
je 0x1400b56cf
cmp byte [rcx + 0x41], 4
jb 0x1400b56cf
mov edx, 0x23
lea rax, str.entry
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1da
lea r9, str.D:qba1workspace7817SSE_Storage_NGSAImplementation_sourcecommonDatabaseDatabase.h
lea r8, [0x140263e18]
mov rcx, qword [rcx + 0x38]
call fcn.140099c10
xor eax, eax
mov r14d, eax
mov qword [rsp + 0x38], rax
mov r12d, eax
movzx ebx, byte [rbp + 0x88]
movzx r9d, bl
mov r8, r13
mov rdx, rsi
mov rcx, r15
call fcn.1400b32c0
cmp eax, 0x65
jne 0x1400b5e52
mov rax, qword [rdi + 8]
mov qword [rsp + 0x68], rax
mov rax, qword [rdi]
mov qword [rsp + 0x60], rax
mov rdi, qword [rbp + 0x80]
lea rcx, str.Database::performQuery
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x38], xmm0
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], rax
mov qword [rbp - 0x38], r15
mov word [rbp - 0x30], ax
mov qword [rbp - 0x28], rax
mov byte [rbp - 0x18], 1
mov qword [rbp - 0x10], rcx
mov dword [rbp - 8], 0x1e6
lea r9, [0x14025f970]
mov r8d, 0x1e6
mov rdx, rcx
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rcx, qword [0x1402e0770]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047d56.0]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rbp - 0x20], rax
test rax, rax
jne 0x1400b57a6
xor r8d, r8d
lea rdx, str.Retrieving_thread_context_failed._Queuing
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
jmp 0x1400b58e4
mov esi, 0x65
lea rax, [0x1402e0728]
mov qword [rbp - 0x68], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x60], 1
cmp byte [rbp - 0x2f], 0
je 0x1400b5802
mov rax, qword [0x1402e0718]
test rax, rax
jne 0x1400b57ed
lea rax, [rbp - 0x38]
mov qword [0x1402e0710], rax
lea rax, [rbp - 0x38]
mov qword [0x1402e0718], rax
jmp 0x1400b5839
lea rcx, [rbp - 0x38]
mov qword [rax + 0x10], rcx
lea rax, [rbp - 0x38]
mov qword [0x1402e0718], rax
jmp 0x1400b5839
mov rax, qword [0x1402e0708]
test rax, rax
jne 0x1400b5826
lea rax, [rbp - 0x38]
mov qword [0x1402e0708], rax
lea rax, [rbp - 0x38]
mov qword [0x1402e0700], rax
jmp 0x1400b5839
lea rcx, [rbp - 0x38]
mov qword [rax + 0x10], rcx
lea rax, [rbp - 0x38]
mov qword [0x1402e0708], rax
mov rax, qword [0x1402e06e0]
inc rax
mov qword [0x1402e06e0], rax
cmp byte [0x1402e06f8], 0
jne 0x1400b585e
lea rcx, [rbp - 0x38]
call fcn.14007fd90
mov esi, eax
mov byte [rbp - 0x60], 0
lea rcx, [0x1402e0728]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, 0x65
je 0x1400b5887
mov r8d, esi
lea rdx, str.Begin
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
lea r9, str.WAITTING
mov r8d, 0x1e6
lea rdx, str.Database::performQuery
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov edx, 0xffffffff
mov rcx, qword [rbp - 0x20]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea r9, str.ENTERED
mov r8d, 0x1e6
lea rdx, str.Database::performQuery
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rax, qword [0x1402e06f0]
inc rax
mov qword [0x1402e06f0], rax
mov rax, qword [rsp + 0x60]
mov rsi, qword [rax + 0xc8]
mov rcx, rsi
call fcn.1400b08e0
mov rcx, rax
xorps xmm1, xmm1
test rax, rax
js 0x1400b590a
cvtsi2sd xmm1, rax
jmp 0x1400b591c
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
movsd xmm0, qword [rsi + 0x58]
call fcn.140109820
mov rax, qword [rsp + 0x68]
mov rsi, qword [rax]
movaps xmm2, xmm0
mov edx, 1
mov rcx, rsi
call fcn.14002aa80
test eax, eax
jne 0x1400b5978
lea edx, [rax + 2]
movabs r8, 0x3fffffffffffffff
mov rcx, rsi
call fcn.14002ab40
test eax, eax
jne 0x1400b5978
lea edx, [rax + 3]
mov r8d, 0x400
mov rcx, rsi
call fcn.14002ab40
test eax, eax
jne 0x1400b5978
mov rcx, rsi
call fcn.14002afd0
cmp eax, 0x65
jne 0x1400b5a67
mov rcx, qword [r15 + 0x18]
call fcn.1401889f0
movsxd r14, eax
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
cmp rax, r14
jae 0x1400b59a3
mov qword [rcx], r14
mov rcx, qword [r13 + 8]
mov rax, qword [rcx]
sub rax, r14
mov qword [rcx], rax
mov byte [rbp - 0x30], 1
mov esi, 0x65
cmp byte [rbp - 0x18], 0
je 0x1400b59db
lea r9, str.COMMIT
mov r8d, dword [rbp - 8]
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rcx, qword [rbp - 0x38]
call fcn.1400bf740
mov esi, eax
lea rax, [0x1402e0728]
mov qword [rbp - 0x58], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x50], 1
lea rcx, [rbp - 0x38]
call fcn.14007fd90
mov r15d, eax
mov byte [rbp - 0x50], 0
lea rcx, [0x1402e0728]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, 0x65
je 0x1400b5a28
mov r8d, esi
lea rdx, str.Commit
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
cmp r15d, 0x65
je 0x1400b5a42
mov r8d, r15d
lea rdx, str.Begin
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
nop
mov r15, qword [rsp + 0x30]
cmp r14, 0x400
jb 0x1400b5c1f
mov rax, qword [r13 + 8]
cmp qword [rax], 0
jne 0x1400b5c3c
jmp 0x1400b5c1f
mov byte [rbp - 0x30], 1
cmp byte [rbp - 0x18], 0
je 0x1400b5aaa
lea r9, str.ROLLBACK
mov r8d, dword [rbp - 8]
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rcx, qword [rbp - 0x38]
call fcn.1400bfca0
cmp eax, 0x65
je 0x1400b5aaa
mov r8d, eax
lea rdx, str.Rollback
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
lea rax, [0x1402e0728]
mov qword [rbp - 0x48], rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x40], 1
lea rcx, [rbp - 0x38]
call fcn.14007fd90
mov esi, eax
mov byte [rbp - 0x40], 0
lea rcx, [0x1402e0728]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, 0x65
je 0x1400b5af7
mov r8d, esi
lea rdx, str.Begin
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
nop
mov rcx, qword [0x1402daa50]
lea rax, [0x1402daa50]
cmp rcx, rax
je 0x1400b5b49
test dword [rcx + 0x44], 0x4000
je 0x1400b5b49
cmp byte [rcx + 0x41], 3
jb 0x1400b5b49
mov edx, 0x23
lea rax, str.SQL_query_error._Stalling_execution
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1f5
lea r9, str.D:qba1workspace7817SSE_Storage_NGSAImplementation_sourcecommonDatabaseDatabase.h
lea r8, [0x140263e18]
mov rcx, qword [rcx + 0x38]
call fcn.140099c10
mov rax, qword [r13 + 8]
mov rcx, qword [rax]
cmp r14, rcx
jne 0x1400b5b5a
add r12d, r12d
jmp 0x1400b5b61
mov r12d, dword [r15 + 0x4f0]
cmp r14, rcx
cmovne r14, rcx
mov qword [rsp + 0x38], r14
cmp r12d, dword [r15 + 0x4f4]
jb 0x1400b5c16
xor esi, esi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], si
xor r8d, r8d
lea rdx, [0x14028ae7c]
lea rcx, [rsp + 0x40]
call fcn.140007240
nop
mov rcx, qword [0x1402e0770]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
mov rax, qword [rax + 0x98]
call qword [case.0x140047d56.0]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x1400b5c03
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400b5bfe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400b5e78
call fcn.1401544c8
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], si
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx r9d, bl
mov r8, r13
mov rdx, qword [rsp + 0x70]
mov rcx, r15
call fcn.1400b32c0
cmp eax, 0x65
jne 0x1400b5cef
cmp byte [rbp - 0x30], 0
jne 0x1400b5cc6
mov byte [rbp - 0x30], 1
cmp byte [rbp - 0x18], 0
je 0x1400b5c89
lea r9, str.ROLLBACK
mov r8d, dword [rbp - 8]
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rcx, qword [rbp - 0x38]
call fcn.1400bfca0
cmp eax, 0x65
je 0x1400b5c89
mov r8d, eax
lea rdx, str.Rollback
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
lea r14, [0x1402e0728]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rbp - 0x38]
call fcn.14007fd90
mov esi, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, 0x65
je 0x1400b5cc6
mov r8d, esi
lea rdx, str.Begin
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
nop
mov rax, qword [r13 + 8]
cmp qword [rax], 0
je 0x1400b5e52
lea rcx, [rdi + 0x58]
call fcn.1400d4f10
test al, al
jne 0x1400b5e52
mov r14, qword [rsp + 0x38]
jmp 0x1400b5716
mov rcx, qword [0x1402daa50]
lea rax, [0x1402daa50]
cmp rcx, rax
je 0x1400b5d41
test dword [rcx + 0x44], 0x4000
je 0x1400b5d41
cmp byte [rcx + 0x41], 2
jb 0x1400b5d41
mov edx, 0x23
lea rax, str.Cannot_get_total_or_left_files_number
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x200
lea r9, str.D:qba1workspace7817SSE_Storage_NGSAImplementation_sourcecommonDatabaseDatabase.h
lea r8, [0x140263e18]
mov rcx, qword [rcx + 0x38]
call fcn.140099c10
xor eax, eax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], ax
xor r8d, r8d
lea rdx, [0x14028ae7c]
lea rcx, [rsp + 0x78]
call fcn.140007240
nop
mov rcx, qword [0x1402e0770]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
mov rax, qword [rax + 0x98]
call qword [case.0x140047d56.0]
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x1400b5dc8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400b5dc2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400b5e72
call fcn.1401544c8
nop
cmp byte [rbp - 0x30], 0
jne 0x1400b5e52
mov byte [rbp - 0x30], 1
cmp byte [rbp - 0x18], 0
je 0x1400b5e15
lea r9, str.ROLLBACK
mov r8d, dword [rbp - 8]
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x38]
call fcn.1400bfee0
mov rcx, qword [rbp - 0x38]
call fcn.1400bfca0
cmp eax, 0x65
je 0x1400b5e15
mov r8d, eax
lea rdx, str.Rollback
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
lea rdi, [0x1402e0728]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rbp - 0x38]
call fcn.14007fd90
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp ebx, 0x65
je 0x1400b5e52
mov r8d, ebx
lea rdx, str.Begin
lea rcx, [rbp - 0x38]
call fcn.1400bfe70
nop
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.140154660
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400e3a70
nop
call fcn.1400e3a70
int3