Function at 0x100cba60
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x158
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10294]
mov ebx, dword [eax + 0x3c]
push 1
and ebx, 0xfffff
push ebx
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0xd4]
push edx
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x154]
push edx
push 0x100734c8
xor esi, esi
push eax
mov ecx, edi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x18], 3
mov dword [ebp - 0xc], ebx
call fcn.10161210
test eax, eax
jne 0x100cbbc9
call fcn.101751a0
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x100cbb43
push eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
or edx, 0xffffffff
xor ecx, ecx
mov eax, ebx
and eax, 0xfffff
mov dword [esi + 0x10], edx
mov word [esi + 0x40], cx
mov word [esi + 0x42], cx
mov dword [esi + 0x20], edx
lea ecx, [ebx + ebx]
or eax, 0x72c00000
push esi
mov edx, ebx
call fcn.10172020
mov dword [ebp + 8], eax
test eax, eax
jge 0x100cbb51
call fcn.10171ee0
call fcn.101751f0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x10294]
mov edx, dword [eax + 0x34]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 0x10294]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
add ebx, ebx
add ebx, ebx
push ebx
push edx
push eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esi + 4]
add esp, 0xc
push ebx
lea ecx, [ebp - 0xd4]
push ecx
push edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esi + 4]
add esp, 0xc
push ebx
lea eax, [ebp - 0xc4]
push eax
add ecx, ebx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [edi + 0x10294]
push esi
push edx
call fcn.10172c80
mov edi, eax
mov eax, esi
call fcn.100c8f80
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, dword [edi + 0x10294]
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x154]
push eax
push 0x100736a8
push ecx
mov ecx, edi
call fcn.10161210
test eax, eax
jne 0x100cbc95
call fcn.101751a0
cmp eax, esi
je 0x100cbb43
call fcn.10171da0
mov esi, eax
test esi, esi
je 0x100cbb43
mov eax, ebx
push 0
and eax, 0xfffff
lea ecx, [ebx + ebx]
or eax, 0x72b00000
push esi
mov edx, ebx
call fcn.10172020
mov dword [ebp + 8], eax
test eax, eax
jge 0x100cbc4c
mov eax, esi
call fcn.100c8f80
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x10294]
mov edx, dword [eax + 0x34]
mov dword [esi + 0x34], edx
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 0x10294]
mov edx, dword [ecx + 0xc]
push 0
push esi
mov eax, ebx
call fcn.100db470
push 0
push esi
mov eax, ebx
lea edx, [ebp - 0xd4]
call fcn.100db440
push ebx
push esi
mov eax, ebx
lea edx, [ebp - 0xc4]
call fcn.100db440
jmp 0x100cbba8
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, dword [edi + 0x10294]
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x154]
push eax
push 0x10073888
push ecx
mov ecx, edi
call fcn.10161210
cmp eax, esi
jne 0x100cbf60
mov edx, dword [ebp - 0xb4]
mov eax, 0x400
cmp dword [edx + 0x80], eax
jne 0x100cbd05
xor eax, eax
cmp ebx, esi
jbe 0x100cbd46
mov ecx, ebx
lea esi, [ebp - 0xa4]
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
nop
mov ecx, dword [ebp + eax*4 - 0xb4]
mov edx, dword [ecx + 0x7c]
mov dword [ebp + eax*4 - 0x34], edx
inc eax
cmp eax, ebx
jb 0x100cbcf0
jmp 0x100cbd43
mov ecx, dword [ebp - 0xa4]
cmp dword [ecx + 0x80], eax
jne 0x100cbf5b
xor eax, eax
cmp ebx, esi
jbe 0x100cbd46
mov ecx, ebx
lea esi, [ebp - 0xb4]
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
lea ebx, [ebx]
mov edx, dword [ebp + eax*4 - 0xa4]
mov ecx, dword [edx + 0x7c]
mov dword [ebp + eax*4 - 0x34], ecx
inc eax
cmp eax, ebx
jb 0x100cbd30
mov edi, dword [ebp + 8]
xor esi, esi
mov byte [ebp - 6], 1
mov byte [ebp - 5], 1
test ebx, ebx
jbe 0x100cbe31
jmp 0x100cbd60
mov ecx, dword [ebp + esi*4 - 0xd4]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x100cbdb4
lea edx, [ebp - 0x14]
push edx
mov ebx, ecx
call fcn.101658d0
test eax, eax
jne 0x100cbdae
fldz
fld qword [ebp - 0x14]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x100cbd9b
mov byte [ebp - 5], 0
fld1
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100cbdbc
jmp 0x100cbdb8
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
mov byte [ebp - 5], 0
mov byte [ebp - 6], 0
mov ecx, dword [ebp + esi*4 - 0xc4]
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x100
xor edx, edx
or eax, edx
je 0x100cbe10
lea eax, [ebp - 0x14]
push eax
mov ebx, ecx
call fcn.101658d0
test eax, eax
jne 0x100cbe0a
fld1
fld qword [ebp - 0x14]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x100cbdf7
mov byte [ebp - 5], 0
fldz
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100cbe18
jmp 0x100cbe14
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp + 8]
mov byte [ebp - 5], 0
mov byte [ebp - 6], 0
inc esi
cmp esi, ebx
jb 0x100cbd60
cmp byte [ebp - 5], 0
jne 0x100cbe31
cmp byte [ebp - 6], 0
je 0x100cbf5b
mov eax, dword [0x101e316c]
test eax, eax
jge 0x100cbe3e
xor eax, eax
jmp 0x100cbe45
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x18], 0
je 0x100cbe6c
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x100cbe56
mov esi, ecx
jmp 0x100cbe7a
mov edx, dword [ecx]
mov dword [eax + 0x18], edx
test edx, edx
jne 0x100cbe62
mov dword [eax + 0x1c], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x100cbe7a
mov ecx, dword [eax + 0x14]
push 0x10
push 0x44
call fcn.101d8457
mov esi, eax
xor ecx, ecx
cmp esi, ecx
je 0x100cbb43
xor eax, eax
mov word [esi + 0x40], ax
mov word [esi + 0x42], ax
or edx, 0xffffffff
mov eax, ebx
and eax, 0xfffff
mov dword [esi], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0x10], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 4], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ecx
cmp byte [ebp - 5], cl
je 0x100cbeca
or eax, 0x72c00000
jmp 0x100cbecf
or eax, 0x72b00000
push ecx
lea ecx, [ebx + ebx]
push esi
mov edx, ebx
call fcn.10172020
mov dword [ebp + 8], eax
test eax, eax
jl 0x100cbb2d
mov eax, dword [edi + 0x10294]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov dword [esi + 0x38], edx
mov eax, dword [edi + 0x10294]
mov ecx, dword [eax + 0xc]
mov edx, dword [esi + 0xc]
add ebx, ebx
add ebx, ebx
push ebx
push ecx
push edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [esi + 4]
add esp, 0xc
push ebx
lea eax, [ebp - 0x24]
push eax
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esi + 4]
add esp, 0xc
push ebx
lea edx, [ebp - 0x34]
push edx
add eax, ebx
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0x10294]
add esp, 0xc
push esi
push ecx
call fcn.10172c80
mov edi, eax
call fcn.10171ee0
call fcn.101751f0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4