Function at 0x140056120
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0xf0
mov qword [rsp + 0xe8], rcx
cmp qword [rcx], 0
jle 0x140056b18
mov eax, dword [0x140274b28]
xor eax, 0x5c74548
xor edx, edx
div dword [0x140274b2c]
mov ecx, 0x21114a36
xor edx, edx
div ecx
add eax, 0x86c7ac60
mov ecx, 0x77036e37
xor ecx, 0xf6303339
mov edx, eax
xor edx, ecx
xor edx, 0xffffffff
mov ecx, 0x1a3ea5f2
xor ecx, 0x9b0df8fc
and ecx, edx
shl ecx, 1
sub ecx, 0x81335d0e
sub eax, ecx
cmp eax, 0x35946d09
je 0x140056b5a
mov eax, dword [0x140274b30]
imul eax, dword [0x140274b34]
add eax, 0x57859ea7
add eax, 0x7d7475bc
sub eax, 0x57859ea7
mov ecx, 0x7a24d496
xor edx, edx
div ecx
mov rdx, qword [rsp + 0xe8]
mov esi, eax
mov ecx, esi
xor ecx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x66bfffc
mov r9d, 0xffffffff
xor r9d, 0x58aab19a
mov eax, ecx
and eax, 0x58aab19a
and esi, r9d
mov r11d, 0x6f95c8cc
xor r11d, 0x373f7956
mov r10d, r8d
and r10d, r11d
mov r11d, r9d
and r11d, 0x66bfffc
or eax, esi
or r10d, r11d
xor eax, r10d
or ecx, r8d
xor ecx, 0xffffffff
mov r8d, 0x3bed05c
xor r8d, 0x5b1461c6
or r8d, r9d
and ecx, r8d
or eax, ecx
mov ecx, 0xc61d0881
xor ecx, 0x2950cbb3
add rdx, 8
mov qword [rsp + 0xe0], rdx
cmp eax, ecx
jae 0x140056b5a
xor eax, eax
mov qword [rsp + 0xd8], rax
jmp 0x140056256
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0xc8], rcx
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x10
mov rax, qword [rax]
mov qword [rsp + 0xd0], rax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xd0]
cmp rax, 0
je 0x1400563ac
mov rax, qword [rsp + 0xd0]
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0xb8], rcx
mov rax, qword [rax - 0x10]
mov qword [rsp + 0xc0], rax
movabs rcx, 0x77b7298c764e3160
movabs rdx, 0x77b7298c764e3170
xor rcx, rdx
cmp rax, rcx
jb 0x140056360
mov rdx, qword [rsp + 0xc0]
mov rax, rdx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0xb0], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x140056326
jmp 0x140056330
call fcn.14000f24b
jmp 0x1400563ac
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xb0]
mov qword [rdx], rcx
mov r8, qword [rax]
mov cl, 1
xor cl, 1
and cl, 1
call fcn.1400200e0
jmp 0x1400563ac
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xd0]
mov r8, qword [rax]
xor eax, eax
mov cl, al
xor cl, 1
and cl, 1
call fcn.1400200e0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x10
mov rcx, qword [rax]
call fcn.140020296
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x20
mov rax, qword [rax]
mov qword [rsp + 0xa8], rax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0xa8]
cmp rax, 0
je 0x1400565e8
mov eax, dword [0x140274b38]
xor eax, dword [0x140274b3c]
mov r8d, 0xffffffff
xor r8d, 0xb74f6d1
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x89c119db
xor r8d, 0x763ee624
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xb74f6d1
or eax, 0xb74f6d1
imul eax, edx
add eax, ecx
mov ecx, 0x7b02e0fd
xor ecx, 0xf68d0e0b
and eax, ecx
xor eax, 0x4602e11e
cmp eax, 0xe3f58b5a
je 0x140056b63
mov eax, dword [0x140274b40]
mov r8d, dword [0x140274b44]
mov ecx, 0x327bce6f
xor ecx, 0xcd843190
mov r9d, r8d
xor r9d, ecx
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xbf7ccc07
xor ecx, 0x7c60e1cd
mov edx, 0xadccd81a
xor edx, 0x523327e5
xor ecx, edx
add eax, ecx
add eax, 1
mov ecx, 0x591ab22f
xor edx, edx
div ecx
mov rdx, qword [rsp + 0xa8]
sub eax, 0x4928baa6
mov ecx, 0xbc3dc2d7
xor ecx, 0x36d22976
mov r8, rdx
add r8, 0xfffffffffffffff0
mov qword [rsp + 0x90], r8
mov rdx, qword [rdx - 0x10]
mov qword [rsp + 0x98], rdx
cmp rdx, 0x10
setb dl
mov byte [rsp + 0xa7], dl
cmp eax, ecx
je 0x14005645c
mov al, byte [rsp + 0xa7]
test al, 1
jne 0x14005659e
jmp 0x14005651a
mov rdx, qword [rsp + 0x98]
mov rax, rdx
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x88], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
movabs rdx, 0xe305592f93688fde
movabs r8, 0x1cfaa6d06c977021
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x14005656a
jmp 0x140056574
call fcn.14000f24b
jmp 0x1400565e8
mov rdx, qword [rsp + 0x90]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x88]
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.1400200e0
jmp 0x1400565e8
mov rdx, qword [rsp + 0x90]
mov rax, qword [rsp + 0xa8]
mov r8, qword [rax]
mov cl, 1
xor cl, 0
and cl, 1
call fcn.1400200e0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x20
mov rcx, qword [rax]
call fcn.140020296
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x30
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x80]
cmp rax, 0
je 0x1400568c3
mov ecx, dword [0x140274b48]
mov edx, dword [0x140274b4c]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
mov ecx, 0x109c3ca4
xor ecx, 0x9cc48b6b
xor edx, edx
div ecx
mov ecx, 0x8ab01263
xor edx, edx
div ecx
mov ecx, 0x3dd4e0b4
xor edx, edx
div ecx
cmp eax, 0x9034f0fa
jae 0x140056b6c
mov rdx, qword [rsp + 0x80]
mov ecx, dword [0x140274b50]
mov r8d, dword [0x140274b54]
mov eax, ecx
and eax, r8d
xor eax, 0xffffffff
and ecx, r8d
mov r8d, 0x68124656
xor r8d, 0x97edb9a9
xor ecx, r8d
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x1234c378
xor ecx, 0xb41be93b
and eax, ecx
mov r8d, eax
and r8d, 0x818cf5d9
mov ecx, 0x9f75d87c
xor ecx, 0x9f75d87e
imul ecx, r8d
add eax, 0x818cf5d9
sub eax, ecx
and eax, 0x5fbc3200
mov ecx, 0xbc95225d
xor ecx, 0xef8e412
xor r8d, r8d
sub r8, 0xfffffffffffffff0
sub rdx, r8
mov qword [rsp + 0x68], rdx
mov rdx, qword [rdx]
mov qword [rsp + 0x70], rdx
movabs r8, 0xf1a2ffe9a12c9578
movabs r9, 0xf1a2ffe9a12c9568
xor r8, r9
cmp rdx, r8
setb dl
mov byte [rsp + 0x7f], dl
cmp eax, ecx
ja 0x140056b6c
mov al, byte [rsp + 0x7f]
test al, 1
jne 0x14005687c
jmp 0x140056739
mov eax, dword [0x140274b58]
xor eax, 0xa95fbfef
mov edx, dword [0x140274b5c]
mov ecx, 0x56f9d2e7
xor ecx, 0xa9062d18
xor eax, ecx
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x151940ed
or eax, edx
or ecx, 0x151940ed
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x4b2c5de5
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x5c1eb06d
mov r8d, 0xffffffff
xor r8d, 0x5c1eb06d
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x5c1eb06d
or eax, 0x5c1eb06d
imul eax, edx
add eax, ecx
mov ecx, 0x64cb7e46
xor ecx, 0xa832d26a
add eax, ecx
sub eax, 0x30f3d5f0
sub eax, 0xccf9ac2c
mov ecx, 0xdc3c56aa
xor ecx, 0x4f8312d2
cmp eax, ecx
jb 0x140056b75
mov rdx, qword [rsp + 0x70]
mov eax, dword [0x140274b60]
xor eax, 0x694fa7eb
mov ecx, dword [0x140274b64]
xor ecx, 0xd9ca6e33
or eax, ecx
add eax, 0x51b30cac
or eax, 0x25be3d5f
imul rax, rax, 0x42e14d15
shr rax, 0x3e
mov r8, rdx
add r8, 0xfffffffffffffff0
mov qword [rsp + 0x58], r8
test r8, r8
setns cl
or rdx, r8
sets dl
add cl, dl
inc cl
mov byte [rsp + 0x67], cl
cmp eax, 0xe0fa5156
je 0x140056b75
mov al, byte [rsp + 0x67]
test al, 1
jne 0x140056846
jmp 0x140056850
call fcn.14000f24b
jmp 0x1400568c3
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov qword [rdx], rcx
mov r8, qword [rax]
xor eax, eax
mov cl, al
xor cl, 0
and cl, 1
call fcn.1400200e0
jmp 0x1400568c3
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x80]
mov r8, qword [rax]
mov cl, 1
xor cl, 0
and cl, 1
call fcn.1400200e0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x30
mov rcx, qword [rax]
call fcn.140020296
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x40
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rax, qword [rsp + 0x50]
cmp rax, 0
je 0x1400569d6
mov rax, qword [rsp + 0x50]
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rsp + 0x40], rcx
mov rax, qword [rax - 0x10]
mov qword [rsp + 0x48], rax
cmp rax, 0x10
jb 0x140056995
mov rdx, qword [rsp + 0x48]
mov rax, rdx
and rax, 0xfffffffffffffff0
mov rcx, rdx
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x38], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14005696a
jmp 0x140056974
call fcn.14000f24b
jmp 0x1400569d6
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.1400200e0
jmp 0x1400569d6
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov r8, qword [rax]
mov ecx, 1
call fcn.1400200e0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x48
add rax, rcx
add rax, 0x40
mov rcx, qword [rax]
call fcn.140020296
mov eax, dword [0x140274b68]
mov ecx, dword [0x140274b6c]
add eax, 0x19a046d5
sub eax, ecx
sub eax, 0x19a046d5
mov ecx, 0xab4645c8
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x876a4298
xor edx, 0x7895bd67
mov eax, ecx
xor eax, edx
mov edx, 0x8a5258bf
xor edx, 0x79426475
mov r8d, 0x98bacb10
xor r8d, 0x674534ef
xor edx, r8d
and eax, edx
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xf3103cca
and ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, eax
xor ecx, 0x1b6aaa72
xor ecx, 0xffffffff
mov edx, 0x98f87b36
xor edx, 0x8392d144
or eax, edx
and eax, ecx
cmp eax, 0xe6b7c408
je 0x140056b7e
mov r8, qword [rsp + 0xe8]
mov eax, dword [0x140274b70]
mov ecx, dword [0x140274b74]
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x6ac4528
or eax, ecx
mov ecx, 0x7b320be9
xor ecx, 0x7d9e4ec1
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x8f49ae13
xor ecx, 0xf302b7e8
xor eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x4f2a4519
mov edx, 0xffffffff
xor edx, 0x4f2a4519
and eax, edx
sub eax, ecx
mov ecx, 0x897690e4
xor edx, edx
div ecx
mov rdx, qword [rsp + 0xc8]
mov ecx, 0xf8962bbe
xor ecx, 0x496e1c0f
add rdx, 1
mov qword [rsp + 0x28], rdx
cmp rdx, qword [r8]
setl dl
mov byte [rsp + 0x37], dl
cmp eax, ecx
je 0x140056a62
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x37]
test cl, 1
mov qword [rsp + 0xd8], rax
jne 0x140056256
jmp 0x140056b18
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
cmp rax, 0
je 0x140056b50
mov ecx, dword [0x1402980b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x20]
mov rcx, rax
add rcx, 0x68
call fcn.1400190f0
nop
add rsp, 0xf0
pop rsi
ret
invalid
mov r8d, 0xf0e91316
clc
invalid
invalid
mov bh, 0x9a
mov r11d, 0xfffc59e9
call qword [rdx - 0x16c0003d]
invalid
xchg edx, eax
ret