Function at 0x10101580
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [ebp + 8]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [edi + 0xc4]
call fcn.100f6210
test eax, eax
je 0x101015fc
mov esi, dword [ebp + 0xc]
test byte [edi + 0x1d], 4
jne 0x101015bc
push dword [edi + 0x170]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
add esi, 0xffffffec
cmp esi, 6
ja case.0x101015cb.23
mov ecx, dword [ebp + 0x1c]
jmp dword [esi*4 + 0x101c62dc]
mov eax, dword [edi + 0x450]
cmp eax, 6
je 0x10101705
cmp dword [edi + 0xa24], 1
jne 0x10101705
mov dword [ecx + 4], 0
xor esi, esi
jmp 0x10101c8c
push 0
push 0xffffd053
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
jmp 0x10101ca0
cmp dword [ecx + 4], 2
jne 0x1010172b
mov eax, dword [ecx]
mov bl, byte [eax]
mov bh, byte [eax + 1]
movzx esi, bh
mov dword [ecx + 4], 0
mov ecx, dword [edi + 0xf4]
test ecx, ecx
je 0x1010166a
mov eax, edi
lea edi, [ebp - 0x14]
mov byte [edi], bl
mov byte [edi + 1], bh
mov byte [ebp - 0x18], bh
mov edi, dword [eax]
mov dword [ebp - 0x1c], edi
mov edi, esi
mov esi, dword [eax + 0xf8]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
push eax
push esi
mov esi, edi
push dword [ebp - 0x1c]
mov bh, byte [ebp - 0x18]
call ecx
add esp, 0xc
cmp esi, 0x45
jg 0x1010196c
lea eax, [esi - 0x14]
cmp eax, 0x28
mov edi, dword [ebp + 8]
ja case.default.0x10101682
jmp dword [eax*4 + 0x101c62f8]
mov ecx, 0xffffd010
jmp 0x10101c3c
cmp dword [edi + 0xa24], 1
jne 0x1010176d
movzx eax, word [ebp + 0x10]
movzx eax, ax
push ecx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push eax
push edi
call fcn.100f2180
add esp, 0x14
jmp 0x101016dc
cmp dword [edi + 0xa24], 1
jne case.0x101015cb.23
push edi
mov esi, ecx
call fcn.10121000
add esp, 4
test eax, eax
je case.0x101015cb.23
push esi
push edi
call fcn.100f1e60
add esp, 8
mov esi, eax
jmp 0x10101c8c
cmp dword [edi + 0xa24], 1
je 0x101016f9
push 0xa
push 2
push edi
call fcn.100f4470
add esp, 0xc
push 0
push 0xffffd037
jmp 0x10101c81
cmp dword [edi + 0x4a8], 0
je 0x101018ea
push 0xa
push 2
push edi
call fcn.100f4470
add esp, 0xc
push 0
push 0xffffd033
jmp 0x10101c81
movzx eax, word [edi + 0x58]
xor ecx, ecx
cmp eax, 0x301
setae cl
lea eax, [ecx + ecx*2 + 0x2f]
push eax
push 2
push edi
call fcn.100f4470
add esp, 0xc
xor esi, esi
xor eax, eax
cmp dword [edi + 0x60], esi
sete al
or eax, 0xffffd006
push esi
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
push esi
push 0xffffd026
jmp 0x10101c81
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x10101991
mov esi, dword [ecx]
lea eax, [edi + 0x498]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi + 0x4a8]
cmp ecx, 4
jae 0x101017de
movzx edx, byte [esi]
inc esi
dec ebx
lea eax, [ecx + 1]
mov dword [edi + 0x4a8], eax
test ecx, ecx
je 0x101018c9
mov dword [ebp - 0x18], esi
mov esi, dword [edi + 0x4b0]
shl esi, 8
or esi, edx
mov dword [edi + 0x4b0], esi
cmp ecx, 3
jb 0x101017d6
cmp esi, 0x20000
jae 0x10101a87
mov eax, 4
test esi, esi
je 0x101018e1
mov esi, dword [ebp - 0x18]
jmp 0x101018d2
mov dword [ebp - 0x18], esi
mov eax, edi
mov edi, dword [edi + 0x4b0]
mov esi, dword [eax + 0x49c]
test esi, esi
jne 0x10101834
cmp ebx, edi
jb 0x10101834
sete al
movzx eax, al
push eax
push edi
mov esi, dword [ebp - 0x18]
push esi
mov edi, dword [ebp + 8]
push edi
call fcn.100fd320
add esp, 0x10
mov edx, edi
mov edi, dword [edi + 0x4b0]
sub ebx, edi
xor ecx, ecx
mov dword [edx + 0x4b0], ecx
mov dword [edx + 0x4a8], ecx
test eax, eax
je 0x101018c0
jmp 0x10101acc
push edi
push dword [ebp - 0x1c]
call fcn.1010b8c0
add esp, 8
test eax, eax
jne 0x10101acc
sub edi, esi
cmp ebx, edi
cmovb edi, ebx
mov esi, ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x498]
add eax, dword [ebx + 0x49c]
push edi
push dword [ebp - 0x18]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x49c]
add eax, edi
mov dword [ebx + 0x49c], eax
cmp eax, dword [ebx + 0x4b0]
jne 0x10101a0d
xor ecx, ecx
sub esi, edi
sete cl
push ecx
push eax
push dword [ebx + 0x498]
push ebx
call fcn.100fd320
add esp, 0x10
xor ecx, ecx
mov dword [ebx + 0x49c], ecx
mov dword [ebx + 0x4b0], ecx
mov dword [ebx + 0x4a8], ecx
test eax, eax
mov ebx, esi
mov esi, dword [ebp - 0x18]
jne 0x10101acc
add esi, edi
xor eax, eax
mov edi, dword [ebp + 8]
jmp 0x101018d2
mov dword [edi + 0x4ac], edx
xor eax, eax
inc eax
mov ecx, eax
test ebx, ebx
jne 0x10101789
jmp 0x101019b1
mov eax, edi
xor edi, edi
jmp 0x101017e9
cmp dword [ecx + 4], 1
jne 0x1010199a
mov edx, ecx
mov ecx, dword [ecx]
cmp byte [ecx], 1
jne 0x101019dc
mov dword [edx + 4], 0
cmp eax, 6
jne 0x10101a1b
test byte [edi + 0x1d], 4
jne 0x10101925
push dword [edi + 0x174]
call fcn.100d4790
add esp, 4
push dword [edi + 0x3b0]
call fcn.1011a020
add esp, 4
mov eax, dword [edi + 0x3b4]
mov dword [edi + 0x3b0], eax
mov dword [edi + 0x3b4], 0
test byte [edi + 0x1d], 4
jne 0x1010195d
push dword [edi + 0x174]
call fcn.100d4880
add esp, 4
mov dword [edi + 0x450], 7
jmp 0x101015f5
cmp esi, 0x55
mov edi, dword [ebp + 8]
jle 0x101019b7
lea eax, [esi - 0x64]
cmp eax, 0x15
ja case.default.0x10101980
jmp dword [eax*4 + 0x101c639c]
mov ecx, 0xffffd066
jmp 0x10101c3c
xor ebx, ebx
xor esi, esi
jmp 0x10101afc
movzx eax, word [edi + 0x58]
xor ecx, ecx
cmp eax, 0x301
setae cl
lea eax, [ecx + ecx*2]
add eax, 0x2f
push eax
jmp 0x101019de
xor ebx, ebx
xor esi, esi
jmp 0x10101a13
cmp esi, 0x46
je 0x10101b04
cmp esi, 0x47
je 0x10101b0e
cmp esi, 0x50
jne case.0x10101980.101
mov ecx, 0xffffd064
jmp 0x10101c3c
push 0x2f
push 2
push edi
call fcn.100f4470
add esp, 0xc
xor esi, esi
xor eax, eax
cmp dword [edi + 0x60], esi
sete al
or eax, 0xffffd006
push esi
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
push esi
push 0xffffd025
jmp 0x10101c81
xor esi, esi
mov edi, ebx
xor ebx, ebx
mov ecx, dword [ebp + 0x1c]
jmp 0x10101afc
cmp eax, 1
je 0x10101c0c
cmp eax, 8
jne 0x10101712
movzx eax, word [edi + 0x58]
cmp eax, 0x304
jb 0x10101712
xor esi, esi
cmp dword [edi + 0x620], 0
jne 0x10101c8c
jmp 0x10101712
test esi, esi
je 0x10101bbf
mov ecx, 0xffffd03b
cmp esi, 0xa
je 0x10101c3c
jmp case.0x10101980.101
cmp esi, 0x56
je 0x10101c37
cmp esi, 0x5a
jne case.0x10101980.101
mov ecx, 0xffffd065
jmp 0x10101c3c
movzx eax, word [edi + 0x58]
xor ecx, ecx
cmp eax, 0x301
setae cl
lea eax, [ecx + ecx*2 + 0x2f]
push eax
push 2
push edi
call fcn.100f4470
add esp, 0xc
xor esi, esi
xor eax, eax
cmp dword [edi + 0x60], esi
sete al
or eax, 0xffffd006
push esi
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
push esi
push 0xffffd027
call sym.nss3.dll_PR_SetError
add esp, 8
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 4]
sub eax, ebx
jne 0x10101ae1
xor esi, esi
dec esi
mov edi, dword [ebp + 8]
jmp 0x10101c8c
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx]
add eax, ecx
push ebx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [ebp + 0x1c]
add esp, 0xc
xor esi, esi
dec esi
mov edi, dword [ebp + 8]
mov dword [ecx + 4], ebx
jmp 0x10101c8c
mov ecx, 0xffffd062
jmp 0x10101c3c
mov ecx, 0xffffd063
jmp 0x10101c3c
mov ecx, 0xffffd039
jmp 0x10101c3c
mov ecx, 0xffffd05b
jmp 0x10101c3c
mov ecx, 0xffffd05c
jmp 0x10101c3c
mov ecx, 0xffffd03c
jmp 0x10101c3c
mov ecx, 0xffffd03d
jmp 0x10101c3c
mov ecx, 0xffffd003
jmp 0x10101c3c
mov ecx, 0xffffd011
jmp 0x10101c3c
mov ecx, 0xffffd03f
jmp 0x10101c3c
mov ecx, 0xffffd012
jmp 0x10101c3c
mov ecx, 0xffffd013
jmp 0x10101c3c
mov ecx, 0xffffd040
jmp 0x10101c3c
mov ecx, 0xffffd03e
jmp 0x10101c3c
mov ecx, 0xffffd05d
jmp 0x10101c3c
mov ecx, 0xffffd05e
jmp 0x10101c3c
mov ecx, 0xffffd05f
jmp 0x10101c3c
mov ecx, 0xffffd060
jmp 0x10101c3c
mov ecx, 0xffffd061
jmp 0x10101c3c
mov dword [edi + 0x48], 1
mov ecx, 0xffffd03a
jmp 0x10101c3c
mov ecx, 0xffffd08f
jmp 0x10101c3c
mov ecx, 0xffffd068
jmp 0x10101c3c
mov ecx, 0xffffd069
jmp 0x10101c3c
mov ecx, 0xffffd06a
jmp 0x10101c3c
mov ecx, 0xffffd06b
jmp 0x10101c3c
mov ecx, 0xffffd06c
jmp 0x10101c3c
mov ecx, 0xffffd0b5
jmp 0x10101c3c
mov ecx, 0xffffd082
jmp 0x10101c3c
mov ecx, 0xffffd0bf
jmp 0x10101c3c
movzx eax, word [edi + 0x26]
cmp eax, 0x304
jb 0x10101712
cmp dword [edi + 0x624], 0
jne 0x10101712
mov dword [edi + 0x624], 1
jmp 0x101015f5
mov ecx, 0xffffd083
movzx eax, word [edi + 0x58]
cmp eax, 0x304
jb 0x10101c59
cmp dword [edi + 0x450], 8
je 0x10101c59
cmp esi, 0x5a
je 0x10101c59
test esi, esi
jne 0x10101c5e
cmp bl, 2
jne 0x10101cb4
push edi
mov esi, ecx
call fcn.1010e6a0
add esp, 4
cmp bh, 0x28
mov eax, 0xffffd002
cmovne eax, esi
cmp dword [edi + 0x450], 8
cmovne eax, esi
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
test byte [edi + 0x1d], 4
jne 0x10101ca0
push dword [edi + 0x170]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
cmp bh, 0x29
jne 0x10101c8c
cmp dword [edi + 0x450], 3
jne 0x10101c8c
mov dword [edi + 0x450], 4
push edi
call fcn.100f65e0
add esp, 4
jmp 0x101016dc