Function at 0x1c55830
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, edx
mov edi, ecx
mov eax, dword [0x1d01324]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp ecx, 8
ja 0x1c5596e
lea eax, [edi - 1]
test edi, eax
sete al
test edi, edi
setne cl
test cl, al
je 0x1c55af4
mov ebx, dword [0x1d04d4c]
test ebx, ebx
je 0x1c55b20
mov eax, 0x20
mov ecx, 0x20
test esi, esi
je 0x1c55887
bsr ecx, esi
xor ecx, 0x1f
sub eax, ecx
mov cl, byte [eax + 0x1ce7c20]
mov edx, esi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + 0x1ce7c44]
mov dword [ebp - 0x24], esi
and ecx, esi
lea esi, [edx + eax*8]
cmp ecx, 1
sbb esi, 0xffffffff
mov byte [ebp - 0x18], 0
cmp byte [ebx], 2
jne 0x1c558c1
mov al, byte [0x1d021a4]
cmp al, 2
je 0x1c56094
movzx esi, word [esi + esi + 0x1ce7a0c]
cmp byte [ebx + 2], 0
mov dword [ebp - 0x20], ebx
je 0x1c55c00
mov edi, dword [0x1d0b694]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
test ebx, ebx
jne 0x1c55d52
cmp edi, 1
jbe 0x1c55d62
add dword [edi + 0x308], 1
adc dword [edi + 0x30c], 0
add dword [edi + esi*8 + 0x7b8], 1
adc dword [edi + esi*8 + 0x7bc], 0
add dword [edi + 0x318], 1
adc dword [edi + 0x31c], 0
cmp word [0x1d021a8], si
jb 0x1c55db3
cmp dword [edi + esi*8], 0
je 0x1c56064
add dword [edi + 0x320], 1
adc dword [edi + 0x324], 0
mov ebx, dword [edi + esi*8]
mov eax, dword [ebx]
test eax, eax
je 0x1c55aae
mov ecx, eax
not ecx
cmp dword [ebx + 4], ecx
je 0x1c55ab0
jmp 0x1c55aa9
mov eax, dword [0x1d04d4c]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1c55c63
lea ebx, [edi - 1]
test edi, ebx
sete al
test edi, edi
setne cl
test cl, al
je 0x1c55b06
cmp esi, edi
jb 0x1c559b4
mov eax, esi
add eax, 0xffffffff
je 0x1c559a6
bsr ecx, eax
xor ecx, 0x1f
jmp 0x1c559ab
mov ecx, 0x20
neg cl
mov edi, 1
shl edi, cl
cmp edi, esi
jb 0x1c55d4c
bsr eax, edi
xor eax, 0xffffffe0
mov cl, byte [eax + 0x1ce7c41]
mov edx, edi
shr edx, cl
and edx, 7
mov ecx, dword [eax*4 + str..._.._base_allocator_partition_allocator_partition_page.h_529__Check_failed:_slot_start___freelist_head]
and ecx, edi
lea esi, [edx + eax*8]
add esi, 0x108
cmp ecx, 1
sbb esi, 0xffffffff
mov byte [ebp - 0x18], 0
mov eax, dword [ebp - 0x20]
cmp byte [eax], 2
jne 0x1c55a00
mov al, byte [0x1d021a4]
cmp al, 2
je 0x1c560a3
mov dword [ebp - 0x28], ebx
movzx ecx, word [esi + esi + 0x1ce7a0c]
mov eax, dword [ebp - 0x20]
cmp byte [eax + 2], 0
je 0x1c55e7b
mov dword [ebp - 0x24], ecx
mov esi, dword [0x1d0b694]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test ebx, ebx
jne 0x1c55efb
cmp esi, 1
mov edx, dword [ebp - 0x24]
jbe 0x1c55f07
add dword [esi + 0x308], 1
adc dword [esi + 0x30c], 0
add dword [esi + edx*8 + 0x7b8], 1
adc dword [esi + edx*8 + 0x7bc], 0
add dword [esi + 0x318], 1
adc dword [esi + 0x31c], 0
cmp word [0x1d021a8], dx
jb 0x1c55f95
cmp dword [esi + edx*8], 0
je 0x1c55f65
add dword [esi + 0x320], 1
adc dword [esi + 0x324], 0
mov ebx, dword [esi + edx*8]
mov eax, dword [ebx]
test eax, eax
je 0x1c55ac3
mov ecx, eax
not ecx
cmp dword [ebx + 4], ecx
je 0x1c55ac5
call fcn.01c56c20
xor eax, eax
bswap eax
add byte [edi + esi*8 + 4], 0xff
mov dword [edi + esi*8], eax
test ebx, ebx
jne 0x1c55ae0
jmp 0x1c55dcf
xor eax, eax
bswap eax
add byte [esi + edx*8 + 4], 0xff
mov dword [esi + edx*8], eax
test ebx, ebx
je 0x1c55fb1
test dword [ebp - 0x28], ebx
jne 0x1c55ee9
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.01cb3141
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
push str..._.._base_allocator_allocator_shim_default_dispatch_to_partition_alloc.cc_230__Check_failed:_base::bits::IsPowerOfTwo_alignment_
call fcn.01c4cf00
add esp, 4
jmp 0x1c55865
push str..._.._base_allocator_partition_allocator_partition_root.h_1464__Check_failed:_base::bits::IsPowerOfTwo_alignment_
call fcn.01c4cf00
add esp, 4
cmp esi, edi
jae 0x1c55997
jmp 0x1c559b4
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x1d04d50], cl
jne 0x1c55b22
mov ebx, dword [0x1d04d4c]
test ebx, ebx
jne 0x1c55bf4
mov dword [ebp - 0x18], 0x10101
mov byte [ebp - 0x14], 0
mov dword [0x1d04d58], 0x1000000
mov ebx, 0x1d04d58
mov byte [0x1d04d5f], 1
mov dword [0x1d04d60], 0
push 0x1100
push 0
push 0x1d04d68
call fcn.01cb76e0
add esp, 0xc
mov byte [0x1d05e88], 0
mov dword [0x1d05ef4], 0
pxor xmm0, xmm0
movdqu xmmword [0x1d05e8c], xmm0
movdqu xmmword [0x1d05e9c], xmm0
movdqu xmmword [0x1d05eac], xmm0
movdqu xmmword [0x1d05ebc], xmm0
movdqu xmmword [0x1d05ecc], xmm0
movdqu xmmword [0x1d05edc], xmm0
mov dword [0x1d05eee], 0
mov dword [0x1d05eea], 0
sub esp, 8
mov al, byte [ebp - 0x14]
mov byte [esp + 4], al
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov ecx, 0x1d04d58
call fcn.01c74c60
mov dword [0x1d04d4c], ebx
mov byte [0x1d04d50], 0
jmp 0x1c55873
shl esi, 5
lea eax, [ebx + esi]
add eax, 0x10
mov dword [ebp - 0x28], eax
lea ecx, [ebx + 8]
mov ebx, 1
mov dword [ebp - 0x1c], 0
mov edi, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov esi, ecx
push ecx
call edi
test al, al
jne 0x1c55c59
mov ecx, ebx
mov eax, ebx
test ebx, ebx
jle 0x1c55c3c
pause
add eax, 0xffffffff
jne 0x1c55c32
add dword [ebp - 0x1c], ebx
add ebx, ebx
cmp ebx, 0x40
mov eax, 0x40
cmovge ebx, eax
cmp dword [ebp - 0x1c], 0x3e8
mov ecx, esi
jl 0x1c55c21
call fcn.01c76bc0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
jmp 0x1c55e38
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x1d04d50], cl
jne 0x1c55c65
mov eax, dword [0x1d04d4c]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x1c55d40
mov dword [ebp - 0x18], 0x10101
mov byte [ebp - 0x14], 0
mov dword [0x1d04d58], 0x1000000
mov ebx, 0x1d04d58
mov byte [0x1d04d5f], 1
mov dword [0x1d04d60], 0
push 0x1100
push 0
push 0x1d04d68
call fcn.01cb76e0
add esp, 0xc
mov byte [0x1d05e88], 0
mov dword [0x1d05ef4], 0
pxor xmm0, xmm0
movdqu xmmword [0x1d05e8c], xmm0
movdqu xmmword [0x1d05e9c], xmm0
movdqu xmmword [0x1d05eac], xmm0
movdqu xmmword [0x1d05ebc], xmm0
movdqu xmmword [0x1d05ecc], xmm0
movdqu xmmword [0x1d05edc], xmm0
mov dword [0x1d05eee], 0
mov dword [0x1d05eea], 0
sub esp, 8
mov al, byte [ebp - 0x14]
mov byte [esp + 4], al
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov ecx, 0x1d04d58
call fcn.01c74c60
mov dword [ebp - 0x20], 0x1d04d58
mov dword [0x1d04d4c], ebx
mov byte [0x1d04d50], 0
jmp 0x1c5597e
push esi
call fcn.01c774c0
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp edi, 1
ja 0x1c558fe
je 0x1c55dcf
mov ebx, dword [ebp - 0x20]
mov byte [ebx + 2], 0
push ebx
call fcn.01c74450
add esp, 4
mov edi, eax
mov byte [ebx + 2], 1
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + esi*8 + 0x7b8], 1
adc dword [eax + esi*8 + 0x7bc], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
cmp word [0x1d021a8], si
jae 0x1c55937
add dword [edi + 0x338], 1
adc dword [edi + 0x33c], 0
add dword [edi + 0x328], 1
adc dword [edi + 0x32c], 0
shl esi, 5
mov eax, dword [ebp - 0x20]
lea ebx, [eax + esi]
add ebx, 0x10
lea ecx, [eax + 8]
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], 0
mov edi, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov esi, ecx
push ecx
call edi
test al, al
jne 0x1c55e34
mov ecx, dword [ebp - 0x28]
mov eax, ecx
test ecx, ecx
jle 0x1c55e11
pause
add eax, 0xffffffff
jne 0x1c55e04
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
add eax, eax
cmp eax, 0x40
mov ecx, 0x40
cmovge eax, ecx
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x1c], 0x3e8
mov ecx, esi
jl 0x1c55df2
call fcn.01c76bc0
mov ecx, ebx
mov eax, dword [ebx]
mov ebx, dword [eax]
test ebx, ebx
je 0x1c560b2
mov byte [ebp - 0x18], 0
mov ecx, dword [ebx]
test ecx, ecx
je 0x1c55e5a
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
je 0x1c55e5c
jmp 0x1c55aa9
xor ecx, ecx
bswap ecx
mov dword [eax], ecx
add word [eax + 0xc], 1
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
jne 0x1c55ae0
xor ebx, ebx
jmp 0x1c55ae0
shl ecx, 5
mov eax, dword [ebp - 0x20]
add ecx, eax
add ecx, 0x10
mov dword [ebp - 0x24], ecx
lea ecx, [eax + 8]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x2c], 0
mov ebx, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov esi, ecx
push ecx
call ebx
test al, al
jne 0x1c5601c
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
test ecx, ecx
jle 0x1c55ec6
pause
add eax, 0xffffffff
jne 0x1c55eb6
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
add eax, eax
cmp eax, 0x40
mov ecx, 0x40
cmovge eax, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x2c], 0x3e8
mov ecx, esi
jl 0x1c55ea0
jmp 0x1c56017
push str..._.._base_allocator_partition_allocator_partition_root.h_1503__Check_failed:___reinterpret_cast_uintptr_t__ptr____alignment___1__
call fcn.01c4cf00
add esp, 4
jmp 0x1c55ae0
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x1c55a3a
je 0x1c55fb1
mov ebx, dword [ebp - 0x20]
mov byte [ebx + 2], 0
push ebx
call fcn.01c74450
mov edx, dword [ebp - 0x24]
add esp, 4
mov esi, eax
mov byte [ebx + 2], 1
add dword [eax + 0x308], 1
adc dword [eax + 0x30c], 0
add dword [eax + edx*8 + 0x7b8], 1
adc dword [eax + edx*8 + 0x7bc], 0
add dword [eax + 0x318], 1
adc dword [eax + 0x31c], 0
cmp word [0x1d021a8], dx
jb 0x1c55f95
cmp dword [esi + edx*8], 0
jne 0x1c55a89
movdqu xmm0, xmmword [esi + 0x328]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [esi + 0x328], xmm0
mov ecx, esi
push edx
call fcn.01c748f0
mov edx, dword [ebp - 0x24]
mov ebx, dword [esi + edx*8]
test ebx, ebx
jne 0x1c55a9a
jmp 0x1c55fb1
add dword [esi + 0x338], 1
adc dword [esi + 0x33c], 0
add dword [esi + 0x328], 1
adc dword [esi + 0x32c], 0
shl edx, 5
mov eax, dword [ebp - 0x20]
lea ecx, [eax + edx]
add ecx, 0x10
mov dword [ebp - 0x24], ecx
lea ecx, [eax + 8]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x2c], 0
mov ebx, dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov esi, ecx
push ecx
call ebx
test al, al
jne 0x1c5601c
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
test ecx, ecx
jle 0x1c55ff9
pause
add eax, 0xffffffff
jne 0x1c55fe9
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
add eax, eax
cmp eax, 0x40
mov ecx, 0x40
cmovge eax, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x2c], 0x3e8
mov ecx, esi
jl 0x1c55fd7
call fcn.01c76bc0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx]
mov ebx, dword [eax]
test ebx, ebx
je 0x1c560ca
mov byte [ebp - 0x18], 0
mov ecx, dword [ebx]
test ecx, ecx
je 0x1c56043
mov edx, ecx
not edx
cmp dword [ebx + 4], edx
je 0x1c56045
jmp 0x1c55aa9
xor ecx, ecx
bswap ecx
mov dword [eax], ecx
add word [eax + 0xc], 1
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
jne 0x1c55ad7
xor ebx, ebx
jmp 0x1c55ad7
movdqu xmm0, xmmword [edi + 0x328]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [edi + 0x328], xmm0
mov ecx, edi
push esi
call fcn.01c748f0
mov ebx, dword [edi + esi*8]
test ebx, ebx
jne 0x1c55952
jmp 0x1c55dcf
mov ecx, 0x1d02194
call sym.chrome_elf.dll_RequestSingleCrashUpload_ExportThunk
jmp 0x1c558c1
mov ecx, 0x1d02194
call sym.chrome_elf.dll_RequestSingleCrashUpload_ExportThunk
jmp 0x1c55a00
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x24]
push 0
push dword [ebp - 0x20]
call fcn.01c76d00
mov ebx, eax
jmp 0x1c55e65
lea eax, [ebp - 0x18]
push eax
push edi
push 0
push dword [ebp - 0x20]
call fcn.01c76d00
mov ebx, eax
jmp 0x1c5604e