Function at 0x100124b40
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov dword [rax + 0x18], r8d
mov dword [rax + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3f]
sub rsp, 0xb0
mov qword [rbp - 9], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r13, rdx
mov r15d, ecx
xor esi, esi
mov dword [rbp - 0x79], esi
mov rdi, qword [rbp + 0x77]
test rdi, rdi
jne 0x100124bad
lea r8, [0x100033640]
mov r9d, ecx
mov edx, 1
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov esi, 0x57
mov rbx, qword [rbp + 0x77]
jmp 0x100125631
mov r14, qword [rbp + 0x7f]
test r14, r14
jne 0x100124bbf
lea r8, [0x1000336b0]
jmp 0x100124b8b
call fcn.1001258f0
mov r12, rax
mov qword [rbp - 0x69], rax
test rax, rax
jne 0x100124bda
mov esi, 0x54f
jmp 0x10012563f
mov rcx, qword [rax]
test rcx, rcx
je 0x100124c1b
mov rdx, rdi
mov rcx, qword [rcx + 0xe0]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
jne 0x100124c1b
mov rax, qword [r12]
xor r14d, r14d
mov dword [rax + 0xc0], r14d
mov rax, qword [r12]
mov edx, dword [rax + 0xf8]
mov ecx, r15d
call fcn.1001256f0
jmp 0x100124e4f
mov rax, qword [r12]
test rax, rax
je 0x100124c37
mov dword [rax + 0xc0], 1
mov rcx, qword [r12]
call fcn.100126230
mov rcx, qword [0x100246638]
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0x177
lea r8, [0x100033490]
lea edx, [r9 - 0x47]
call qword [rax + 0x48]
mov qword [rbp - 0x71], rax
test rax, rax
je 0x100124c73
mov edx, r15d
mov rcx, rax
call fcn.100125970
mov rbx, rax
jmp 0x100124c75
xor ebx, ebx
test rbx, rbx
jne 0x100124c82
lea esi, [rbx + 8]
jmp 0x100125631
mov rcx, rbx
call fcn.100125ec0
mov esi, eax
test eax, eax
je 0x100124cb0
mov r9d, r15d
lea r8, [0x100033720]
mov edx, 1
mov rcx, qword [0x10029b218]
call fcn.100156ed0
jmp 0x100125631
mov rdx, rdi
mov rcx, rbx
call fcn.100126010
mov esi, eax
test eax, eax
jne 0x100125631
mov rdx, r14
mov rcx, rbx
call fcn.1001260f0
mov esi, eax
mov dword [rbp - 0x79], eax
test eax, eax
jne 0x100125631
lea rax, [0x10023fa48]
mov qword [rbp - 0x61], rax
mov dword [rbp - 0x59], esi
call fcn.100068a00
mov r14, rax
mov rcx, qword gs:[0x30]
lea rdi, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100124d18
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rdi, rdi
je 0x100124d29
mov rdi, qword [rdi + 0xd8]
test rdi, rdi
jne 0x100124d61
call fcn.100063d30
call fcn.100068a00
mov rdi, rax
mov rcx, qword gs:[0x30]
lea r14, [rcx + rax]
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x100124d5a
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r14, rax
mov rdi, qword [r14 + 0xd8]
mov rcx, qword [rdi + 0x210]
test rcx, rcx
je 0x100124d9b
mov eax, dword [rcx + 0xb4]
test al, 4
je 0x100124d9b
mov rax, qword [rcx + 0x98]
test byte [rax + 0x220], 1
jne 0x100124d9b
mov eax, dword [rax + 0x2d8]
test al, al
js 0x100124d9b
bt eax, 8
jae 0x100124e20
call fcn.100064800
mov edx, eax
xor eax, eax
lock cmpxchg dword [0x10023fa48], edx
mov r14d, 0
mov ecx, r14d
sete cl
test ecx, ecx
jne 0x100124dc8
lea rcx, [0x10023fa48]
call fcn.100076600
cmp dword [0x10023fa68], r14d
jne 0x100124de7
mov dword [0x10023fa68], 2
mov eax, r14d
mov dword [0x10023fa48], r14d
jmp 0x100124e07
lea r9, [0x10023fa78]
or r8d, 0xffffffff
mov edx, 2
lea rcx, [0x10023fa48]
call fcn.1001049c0
test eax, eax
jne 0x100124e23
mov qword [0x10023fa70], rdi
mov edi, dword [rbp - 0x59]
test eax, eax
mov eax, 2
cmove edi, eax
mov dword [rbp - 0x59], edi
jmp 0x100124e26
xor r14d, r14d
mov edi, dword [rbp - 0x59]
mov rcx, qword [r12]
test rcx, rcx
je 0x100124e35
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [r12], rbx
test edi, edi
je 0x100124e4f
mov edx, edi
lea rcx, [0x10023fa48]
call fcn.1001047d0
mov dword [rbp - 0x59], r14d
mov rcx, qword [r12]
mov eax, r14d
cmp dword [rbp + 0xbf], 0
setne al
mov dword [rcx + 0xd8], eax
mov rax, qword [r12]
mov ebx, dword [rbp + 0x87]
mov dword [rax + 0xa8], ebx
mov edx, dword [rbp + 0x8f]
mov rcx, qword [r12]
call fcn.100126420
mov edi, dword [rbp + 0xaf]
cmp edi, 3
jl 0x100124eb0
mov esi, 0x57
lea r8, [0x100033780]
lea edx, [rsi - 0x56]
mov rcx, qword [0x10029b218]
call fcn.100156ed0
jmp 0x10012563f
test edi, edi
jle 0x10012513d
cmp r15d, 4
je 0x10012513d
cmp ebx, 0x20
je 0x10012513d
mov ebx, dword [rbp + 0x6f]
movsxd r14, dword [rbp + 0x67]
test r14d, r14d
jg 0x100124edf
test ebx, ebx
je 0x10012513a
mov rcx, qword [0x100246638]
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0x1b6
lea r8, [0x100033490]
mov edx, 0x10
call qword [rax + 0x48]
mov r11, rax
mov qword [rbp - 0x71], rax
xor edi, edi
test rax, rax
je 0x100124f1d
mov qword [rax], rdi
mov dword [rax + 8], edi
mov byte [rax + 0xc], dil
jmp 0x100124f20
mov r11, rdi
mov rax, qword [r12]
mov qword [rax + 0xd0], r11
mov rax, qword [r12]
cmp qword [rax + 0xd0], 0
je 0x100125011
mov r9d, r15d
lea r8, [0x1000337e0]
mov edx, 3
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
test ebx, ebx
je 0x100124fa9
mov byte [rcx + 0xc], 1
mov rcx, qword [r12]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rcx + 0xd0]
call fcn.100129e30
mov esi, eax
mov dword [rbp - 0x79], eax
test eax, eax
je 0x100124fad
mov r9d, eax
lea r8, [0x100033840]
mov edx, 3
mov rcx, qword [0x10029b218]
call fcn.100156ed0
jmp 0x10012563f
mov byte [rcx + 0xc], 0
or r8, 0xffffffffffffffff
test r14d, r14d
jle 0x10012501b
mov eax, 8
mul r14
mov rdx, rax
cmovo rdx, r8
cmp rdx, r8
jne 0x100124fcf
mov rax, rdi
jmp 0x100124ff2
mov rcx, qword [0x100246638]
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0x1cd
lea r8, [0x100033490]
call qword [rax + 0x48]
or r8, 0xffffffffffffffff
mov rcx, qword [r12]
mov rdx, qword [rcx + 0xd0]
mov qword [rdx], rax
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
cmp qword [rcx], 0
jne 0x100125029
mov esi, ntohs
jmp 0x10012563f
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
mov qword [rcx], rdi
test r14d, r14d
jle 0x100125121
mov rbx, qword [rbp + 0x5f]
nop word [rax + rax]
mov rcx, qword [rbx + rdi*8]
mov rax, r8
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x100125050
lea ebx, [rax + 1]
call fcn.100058d10
mov rcx, qword [rax + 0x38]
mov rcx, qword [rcx]
mov eax, 2
mul rbx
mov rdx, rax
mov rax, 0xffffffffffffffff
cmovo rdx, rax
cmp rdx, rax
jne 0x100125088
xor eax, eax
jmp 0x1001250a0
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0x1db
lea r8, [0x100033490]
call qword [rax + 0x48]
mov rcx, qword [r12]
mov rdx, qword [rcx + 0xd0]
mov rcx, qword [rdx]
mov qword [rcx + rdi*8], rax
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
cmp qword [rax + rdi*8], 0
je 0x100125011
mov rax, qword [rbp + 0x5f]
mov r9, qword [rax + rdi*8]
lea r8, [0x1000338d0]
mov edx, 3
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
lea r8, [rbx + rbx]
mov rbx, qword [rbp + 0x5f]
mov rdx, qword [rbx + rdi*8]
mov rcx, qword [rax + rdi*8]
call sub.MSVCR100.dll_memcpy
inc rdi
cmp rdi, r14
mov r8, 0xffffffffffffffff
jl 0x100125040
mov rax, qword [r12]
mov rcx, qword [rax + 0xd0]
mov dword [rcx + 8], r14d
mov edi, dword [rbp + 0xaf]
mov r15d, dword [rbp + 0x47]
xor r14d, r14d
mov rbx, qword [rbp + 0x97]
test rbx, rbx
je 0x100125188
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp - 0x75]
call qword [rax + 0x30]
test rax, rax
je 0x100125188
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp - 0x75]
call qword [rax + 0x30]
mov r8, rbx
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x100125184
add rax, 2
test ecx, ecx
jne 0x100125170
test edx, edx
je 0x1001251c1
mov rdx, rbx
mov rcx, qword [r12]
call fcn.100124440
mov esi, eax
mov dword [rbp - 0x79], eax
test eax, eax
je 0x1001251c1
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
mov r9, rbx
lea r8, [0x100033920]
mov edx, 1
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov rbx, qword [rbp + 0x9f]
test rbx, rbx
je 0x10012520c
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp - 0x75]
call qword [rax + 0x28]
test rax, rax
je 0x10012520c
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp - 0x75]
call qword [rax + 0x28]
mov r8, rbx
sub r8, rax
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x100125208
add rax, 2
test ecx, ecx
jne 0x1001251f4
test edx, edx
je 0x100125245
mov rdx, rbx
mov rcx, qword [r12]
call fcn.100124590
mov esi, eax
mov dword [rbp - 0x79], eax
test eax, eax
je 0x100125245
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r15d
mov r9, rbx
lea r8, [0x1000339a0]
mov edx, 1
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov rcx, qword [r12]
mov eax, r14d
cmp dword [rbp + 0xa7], 0
setne al
mov dword [rcx + 0xc4], eax
mov rax, qword [r12]
mov dword [rax + 0xc8], edi
mov rcx, qword [r12]
mov eax, dword [rbp + 0xb7]
mov dword [rcx + 0xcc], eax
mov rbx, qword [r12]
mov dword [rbp - 0x31], 0x80000c2
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x19], r14
mov qword [rbp - 0x21], r14
mov qword [rbp - 0x11], r14
lea r8, [rbp - 0x31]
or edx, 0xffffffff
lea rcx, [rbx + 0x58]
call fcn.10005b250
lea rcx, [rbx + 0x58]
call fcn.10005b360
mov r15, qword [r12]
add r15, 0x48
mov rdi, qword [r15 + 8]
cmp rdi, r15
je 0x1001252c6
test rdi, rdi
je 0x1001252c6
add rdi, 0xfffffffffffffff8
jmp 0x1001252c8
xor edi, edi
movsxd r14, dword [rbp + 0x57]
mov qword [rbp - 0x71], r14
test rdi, rdi
je 0x1001253f2
mov r14, qword [rbp + 0x77]
nop dword [rax]
xor r12d, r12d
xor ebx, ebx
cmp qword [rbp - 0x71], rbx
jle 0x100125315
nop dword [rax + rax]
mov rdx, qword [r13 + rbx*8]
mov rcx, qword [rdi]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x10012530d
inc rbx
cmp rbx, qword [rbp - 0x71]
jl 0x1001252f0
jmp 0x100125315
mov r12d, 1
jmp 0x100125390
mov rax, qword [rdi]
mov rcx, qword [rbp - 0x69]
mov rcx, qword [rcx]
mov dword [rbp - 0x51], 1
mov qword [rbp - 0x49], rax
lea r8, [rbp - 0x51]
xor edx, edx
mov rcx, qword [rcx + 0xa0]
call fcn.1001203b0
mov esi, eax
mov r9, qword [rdi]
mov rcx, qword [0x10029b218]
test eax, eax
je 0x10012536a
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x47]
mov dword [rsp + 0x20], eax
lea r8, [0x100033a10]
mov edx, 1
call fcn.100156ed0
jmp 0x100125390
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x20], rax
lea r8, [0x100033a80]
mov edx, 3
call fcn.100156ed0
mov r14, rdi
mov rdi, qword [rdi + 0x10]
cmp rdi, r15
je 0x1001253a4
test rdi, rdi
je 0x1001253a4
add rdi, 0xfffffffffffffff8
jmp 0x1001253a6
xor edi, edi
test r12d, r12d
jne 0x1001253de
test esi, esi
jne 0x1001253de
mov rcx, qword [r14 + 0x10]
mov rax, qword [r14 + 8]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [r14 + 0x10], 0
mov qword [r14 + 8], 0
test r14, r14
je 0x1001253de
lea edx, [rsi + 1]
mov rcx, r14
call fcn.1001241e0
test rdi, rdi
jne 0x1001252e0
mov dword [rbp - 0x79], esi
mov r14, qword [rbp - 0x71]
mov r12, qword [rbp - 0x69]
test r14, r14
jle 0x10012558c
nop dword [rax + rax]
mov rcx, r15
call fcn.100125950
mov rbx, rax
test rax, rax
je 0x100125440
mov rdx, qword [r13]
mov rcx, qword [rbx]
call qword [sym.imp.MSVCR100.dll__wcsicmp]
test eax, eax
je 0x10012557c
mov rbx, qword [rbx + 0x10]
cmp rbx, r15
je 0x100125439
test rbx, rbx
je 0x100125439
add rbx, 0xfffffffffffffff8
jmp 0x10012543b
xor ebx, ebx
test rbx, rbx
jne 0x100125410
mov rcx, qword [0x100246638]
mov rax, qword [rcx]
mov byte [rsp + 0x20], 6
mov r9d, 0x241
lea r8, [0x100033490]
mov edx, 0x18
call qword [rax + 0x48]
mov rbx, rax
mov qword [rbp - 0x69], rax
xor edi, edi
test rax, rax
je 0x10012547f
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
jmp 0x100125482
mov rbx, rdi
test rbx, rbx
jne 0x1001254af
mov esi, 8
mov dword [rsp + 0x20], esi
mov r9d, dword [rbp + 0x47]
lea r8, [0x100033ad0]
lea edx, [rbx + 1]
mov rcx, qword [0x10029b218]
call fcn.100156ed0
jmp 0x10012557c
test esi, esi
jne 0x100125523
mov rdx, qword [r13]
mov rcx, rbx
call fcn.100124130
test eax, eax
je 0x1001254d5
mov esi, 8
mov dword [rsp + 0x28], esi
lea r8, [0x100033b50]
jmp 0x100125507
mov rcx, qword [r12]
mov dword [rbp - 0x41], edi
mov rax, qword [r13]
mov qword [rbp - 0x39], rax
lea r8, [rbp - 0x41]
xor edx, edx
mov rcx, qword [rcx + 0xa0]
call fcn.1001203b0
mov esi, eax
test eax, eax
je 0x100125534
mov dword [rsp + 0x28], eax
lea r8, [0x100033be0]
mov eax, dword [rbp + 0x47]
mov dword [rsp + 0x20], eax
mov r9, qword [r13]
mov edx, 1
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov edx, 1
mov rcx, rbx
call fcn.1001241e0
test esi, esi
jne 0x10012557c
lea rcx, [rbx + 8]
mov rax, qword [r15 + 8]
mov qword [rcx + 8], rax
mov rax, qword [r15 + 8]
mov qword [rax], rcx
mov qword [r15 + 8], rcx
mov qword [rcx], r15
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x20], rax
mov r9, qword [r13]
lea r8, [0x100033c50]
mov edx, 3
mov rcx, qword [0x10029b218]
call fcn.100156ed0
add r13, 8
dec r14
jne 0x100125400
mov dword [rbp - 0x79], esi
mov rbx, qword [r15 + 8]
cmp rbx, r15
jne 0x1001255e1
mov rax, qword [rbp + 0x7f]
mov r9d, dword [rbp + 0x47]
mov rcx, qword [0x10029b218]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x20], rax
cmp dword [rbp + 0xbf], 0
je 0x1001255ce
lea r8, [0x100033ca0]
mov edx, 2
call fcn.100156ed0
jmp 0x10012563f
lea r8, [0x100033d30]
mov edx, 3
call fcn.100156ed0
jmp 0x10012563f
test rbx, rbx
je 0x1001255ea
add rbx, 0xfffffffffffffff8
test rbx, rbx
je 0x10012563f
mov esi, dword [rbp + 0x47]
mov dword [rsp + 0x20], esi
mov r9, qword [rbx]
lea r8, [0x100033dc0]
mov edx, 3
mov rcx, qword [0x10029b218]
call fcn.100156ed0
mov rbx, qword [rbx + 0x10]
cmp rbx, r15
je 0x100125625
test rbx, rbx
je 0x100125625
add rbx, 0xfffffffffffffff8
jmp 0x100125627
xor ebx, ebx
test rbx, rbx
jne 0x1001255f2
mov esi, dword [rbp - 0x79]
jmp 0x10012563f
test rbx, rbx
je 0x10012563f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, esi
mov rbx, qword [rsp + 0xf8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret