Function at 0x10124360
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, dword [ebp + 8]
mov edi, dword [esi + 0xc4]
push 0x29
push esi
call fcn.1010ba70
add esp, 8
test eax, eax
je 0x101243bf
mov eax, dword [esi + 0x9f0]
cmp dword [eax + 0x10], 1
jne 0x101243ec
cmp dword [esi + 0x6f8], 0
je 0x10124408
mov ecx, dword [esi + 0x494]
lea edx, [ecx + 0x10]
add eax, 0x20
test ecx, ecx
cmovne eax, edx
mov ebx, dword [eax]
movzx eax, word [edi + 0x9a]
push eax
call fcn.100fa060
add esp, 4
test eax, eax
je 0x101243f8
mov eax, dword [eax + 0x10]
jmp 0x101243fa
mov eax, dword [esi + 0x5d0]
test eax, eax
je 0x101243dc
push eax
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
mov dword [esi + 0x5d0], 0
xor eax, eax
mov dword [esi + 0x6f8], eax
mov dword [esi + 0x9f0], eax
jmp 0x10124408
mov dword [esi + 0x6f8], 0
jmp 0x10124408
xor eax, eax
cmp ebx, eax
jne 0x10124631
mov eax, dword [esi + 0x9f0]
lea ecx, [esi + 0x628]
mov edx, dword [esi + 0x48c]
movups xmm0, xmmword [edx]
movups xmmword [esi + 0x628], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x638], xmm0
mov dword [esi + 0x48c], ecx
test eax, eax
je 0x101244a3
mov dword [esi + 0x634], 9
cmp dword [esi + 0x6f8], 0
je 0x101244d3
mov eax, dword [edi + 0x60]
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x64]
mov dword [esi + 0x84], eax
push dword [edi + 0x70]
call fcn.1011a470
add esp, 4
mov dword [esi + 0x98], eax
mov eax, dword [edi + 0x74]
mov dword [esi + 0x88], eax
mov ebx, dword [edi + 0x18]
test ebx, ebx
je 0x10124493
push ebx
call fcn.100a2170
add esp, 4
test eax, eax
je 0x10124490
lock inc dword [eax + 4]
mov dword [esi + 0x78], ebx
lock inc dword [0x101df62c]
lock inc dword [0x101df648]
jmp 0x101244dd
cmp dword [esi + 0x6f8], 0
je 0x101244c2
push 0x29
push esi
call fcn.1010bab0
add esp, 8
test eax, eax
je 0x101244c2
lock inc dword [0x101df630]
cmp dword [edi + 4], 1
jne 0x101244dd
push esi
call fcn.101141d0
add esp, 4
jmp 0x101244dd
mov dword [esi + 0x80], 9
push edi
call fcn.10113020
add esp, 4
push 0
push esi
call fcn.100fee40
add esp, 8
mov dword [esi + 0xc4], eax
test eax, eax
je 0x101245af
mov edi, eax
cmp dword [esi + 0x6f8], 0
je 0x10124525
mov ebx, dword [esi + 0x78]
test ebx, ebx
je 0x10124522
push ebx
call fcn.100a2170
add esp, 4
test eax, eax
je 0x10124522
lock inc dword [eax + 4]
mov dword [edi + 0x18], ebx
movzx eax, word [esi + 0x58]
mov word [edi + 0x4a], ax
lea eax, [esi + 0x9a8]
mov edi, dword [esi + 0x9a8]
cmp edi, eax
je 0x10124613
push dword [edi + 8]
push esi
call fcn.1011c420
add esp, 8
test eax, eax
je 0x10124628
mov ebx, eax
lea eax, [esi + 0x5d8]
mov ecx, esi
mov edx, edi
push eax
push dword [ebx + 0xc]
call fcn.101200e0
add esp, 8
xor ecx, ecx
dec ecx
test eax, eax
jne 0x1012465c
mov eax, dword [edi + 8]
mov dword [esi + 0x94], eax
mov eax, dword [eax + 8]
cmp eax, 2
je 0x10124663
cmp eax, 4
jne 0x10124687
cmp dword [esi + 0x6f8], 1
mov eax, 5
sbb eax, 0
mov ecx, 4
jmp 0x1012467b
cmp dword [0x101de200], 0
je 0x10124750
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x1012471a
push 0
push dword [eax + 0x28]
call sym.nss3.dll_PR_SetError
add esp, 8
cmp dword [0x101de200], 0
je 0x1012475a
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10124735
mov edi, dword [eax + 0x28]
push 0x50
push 2
push esi
call fcn.100fa900
add esp, 0xc
push 0
push edi
jmp 0x10124651
xor edi, edi
mov ebx, 0xffffd08b
push edi
push ebx
call sym.nss3.dll_PR_SetError
add esp, 8
push 0x6d
jmp 0x10124644
xor edi, edi
mov ebx, 0xffffd08a
jmp 0x10124638
xor edi, edi
mov ebx, 0xffffd01d
push edi
push ebx
call sym.nss3.dll_PR_SetError
add esp, 8
push 0x2f
push 2
push esi
call fcn.100fa900
add esp, 0xc
push edi
push ebx
call sym.nss3.dll_PR_SetError
add esp, 8
xor ecx, ecx
dec ecx
mov eax, ecx
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
cmp dword [esi + 0x6f8], 0
setne al
lea eax, [eax*4 + 2]
mov ecx, 2
mov dword [esi + 0x62c], eax
mov dword [esi + 0x8c], ecx
mov eax, dword [ebx + 0xc]
push dword [eax + 4]
call fcn.10095190
add esp, 4
mov dword [esi + 0x90], eax
mov ecx, esi
call fcn.10124770
test eax, eax
jne 0x10124659
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.10129b60
add esp, 0xc
test eax, eax
jne 0x10124659
mov ecx, esi
call fcn.101248c0
test eax, eax
jne 0x10124659
cmp dword [esi + 0x600], 1
jne 0x101246da
push 0
push 2
push esi
call fcn.1011f870
add esp, 0xc
mov ecx, esi
mov edx, 2
push 0
push 1
call fcn.101204a0
add esp, 8
test eax, eax
je 0x10124709
xor edi, edi
mov ebx, 0xffffd050
push edi
push ebx
call sym.nss3.dll_PR_SetError
add esp, 8
push 0x50
jmp 0x10124644
mov dword [esi + 0x450], 0x8f
xor ecx, ecx
jmp 0x1012465c
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
jmp 0x101245d0
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
jmp 0x101245fe
call fcn.100745e0
jmp 0x101245bc
call fcn.100745e0
jmp 0x101245ea