Function at 0x10164b30
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov edi, dword [ebp + 8]
mov eax, dword [0x101d2014]
xor eax, ebp
mov ecx, edi
mov dword [ebp - 0x10], eax
call fcn.1015eb70
test eax, eax
je 0x10164ccc
movzx eax, word [edi + 0x58]
cmp eax, 0x304
mov word [ebp - 0x14], ax
mov word [ebp - 0x12], ax
jb 0x10164c11
mov eax, dword [edi + 0x9f0]
test eax, eax
je 0x10164c11
cmp dword [eax + 0x10], 2
jne 0x10164c11
movzx esi, word [eax + 0x24]
test esi, esi
je 0x10164c11
lea ecx, [edi + 0x210]
mov eax, 0x47
cmp word [ecx], si
je 0x10164bbc
add ecx, 4
dec eax
jne 0x10164ba0
push 0
push 0xffffd016
call sym.nss3.dll_PR_SetError
add esp, 8
xor ecx, ecx
movzx edx, byte [edi + 0x3e0]
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.1015ef80
add esp, 8
test eax, eax
je 0x10164c11
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
cmp eax, 2
jb 0x10164c11
mov dword [ebp - 0x20], esi
mov edx, 3
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
movzx esi, word [ecx + edx - 3]
mov ecx, dword [ebp - 0x20]
shl esi, 0x10
bswap esi
cmp esi, ecx
je 0x10164d8b
cmp edx, eax
jae 0x10164c11
add edx, 2
jmp 0x10164bf0
mov dword [ebp - 0x24], ebx
xor ebx, ebx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x1c]
movzx edx, byte [eax + 0x3e0]
lea edi, [eax + ebx*4 + 0x210]
mov ecx, edi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.1015ef80
add esp, 8
test eax, eax
je 0x10164c73
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
cmp eax, 2
jb 0x10164c73
movzx ecx, word [edi]
mov esi, 3
mov dword [ebp - 0x20], ecx
movzx ecx, cx
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 4]
movzx edi, word [edx + esi - 3]
shl edi, 0x10
bswap edi
cmp edi, ecx
je 0x10164c85
cmp esi, eax
jae 0x10164c73
add esi, 2
jmp 0x10164c5c
inc ebx
cmp ebx, 0x47
jne 0x10164c19
push 0
push 0xffffd002
jmp 0x10164d2e
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
mov word [edi + 0x490], si
mov eax, 0x101a7890
mov ecx, 0x48
cmp word [eax], si
je 0x10164d4d
add eax, 0x14
dec ecx
jne 0x10164c9f
xor esi, esi
push esi
push 0xffffd016
call sym.nss3.dll_PR_SetError
add esp, 8
mov dword [edi + 0x494], esi
push esi
push 0xffffe001
jmp 0x10164d2e
cmp dword [0x101d4d40], 0
je 0x10164dba
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10164d92
push 0
push dword [eax + 0x28]
call sym.nss3.dll_PR_SetError
add esp, 8
cmp dword [0x101d4d40], 0
je 0x10164dc4
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10164da6
mov esi, dword [eax + 0x28]
push 0x28
push 2
push edi
call fcn.1015f2c0
add esp, 0xc
push 0
push esi
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [edi + 0x494], eax
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x101a7e30]
mov dword [edi + 0x48c], eax
or byte [edi + 0x540], 2
test ebx, ebx
je 0x10164d87
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.10161690
xor esi, esi
jmp 0x10164d39
mov esi, ecx
jmp 0x10164c8e
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
jmp 0x10164ced
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
jmp 0x10164d1b
call sym.nss3.dll_PR_Init
jmp 0x10164cd9
call sym.nss3.dll_PR_Init
jmp 0x10164d07