Function at 0x42aeac
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
test byte [eax + 1], 0x80
je 0x42b1ec
mov eax, dword [eax + 8]
test edx, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
je 0x42aee2
cmp dword [edx], 0
je 0x42aee2
mov ebx, dword [edx]
dec ebx
jmp 0x42aee5
mov ebx, eax
dec ebx
cmp eax, ebx
jbe 0x42b1ec
cmp dword [ebp + 0x14], 0
lea edi, [ebx + 1]
je 0x42af02
mov eax, dword [ebp + 0x14]
cmp edi, dword [eax]
jbe 0x42af02
mov edx, dword [ebp + 0x14]
mov edi, dword [edx]
test edi, edi
jbe 0x42b1ec
test byte [esi + 1], 0x10
je 0x42af97
call fcn.0042349c
push esi
call fcn.00422db8
pop ecx
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 4]
jae 0x42af40
mov eax, ebx
mov edx, dword [ebp - 4]
shl eax, 3
mov ecx, dword [edx]
lea eax, [eax + eax*2]
add ecx, eax
push ecx
call fcn.00422db8
pop ecx
jmp 0x42af45
call fcn.00422df0
lea edx, [ebx + 1]
push edx
call fcn.00423054
pop ecx
push 2
call fcn.00422578
pop ecx
mov ecx, dword [0x555894]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
test byte [eax + 0x10], 0x80
je 0x42af82
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x18], 0
je 0x42af82
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42af14
jmp 0x42b1ec
test byte [esi + 1], 4
je 0x42afe1
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax + 1], 4
je 0x42afcc
mov ecx, dword [ebp + 0x18]
push ecx
push esi
push eax
call fcn.0043fa58
add esp, 0xc
test eax, eax
jne 0x42afcc
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42af9d
jmp 0x42b1ec
test byte [esi], 0x1a
je 0x42b030
push esi
call fcn.0043e188
pop ecx
fstp qword [ebp - 0xc]
mov eax, ebx
mov ecx, dword [ebp - 4]
shl eax, 3
mov esi, dword [ecx]
lea eax, [eax + eax*2]
add esi, eax
test byte [esi], 0x1a
je 0x42b01b
push esi
call fcn.0043e188
fcomp qword [ebp - 0xc]
pop ecx
fnstsw ax
sahf
jne 0x42b01b
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42aff0
jmp 0x42b1ec
test byte [esi], 0x60
je 0x42b0b9
cmp dword [ebp + 0x18], 0
je 0x42b080
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax], 0x60
je 0x42b06b
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42b06b
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + 0xc]
jne 0x42b06b
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b03f
jmp 0x42b1ec
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax], 0x60
je 0x42b0a4
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42b0a4
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b080
jmp 0x42b1ec
test byte [esi], 0x80
je 0x42b105
push esi
call fcn.0043e12c
pop ecx
mov dword [ebp - 0x10], eax
mov eax, ebx
mov ecx, dword [ebp - 4]
shl eax, 3
mov esi, dword [ecx]
lea eax, [eax + eax*2]
add esi, eax
test byte [esi], 0x80
je 0x42b0f0
push esi
call fcn.0043e12c
pop ecx
cmp eax, dword [ebp - 0x10]
jne 0x42b0f0
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b0c8
jmp 0x42b1ec
test dword [esi], 0xfffbffff
jne 0x42b141
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test dword [eax], 0xfffbffff
jne 0x42b12c
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b10d
jmp 0x42b1ec
test byte [esi], 1
je 0x42b178
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax], 1
je 0x42b16a
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42b16a
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b146
jmp 0x42b1ec
cmp dword [ebp + 0x18], 0
je 0x42b1b4
test byte [esi + 1], 0x80
je 0x42b1b4
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax + 1], 0x80
je 0x42b1a6
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42b1a6
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b184
jmp 0x42b1ec
cmp dword [ebp + 0x18], 0
je 0x42b1ec
test byte [esi], 4
je 0x42b1ec
mov edx, ebx
mov ecx, dword [ebp - 4]
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
test byte [eax], 4
je 0x42b1e0
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42b1e0
lea eax, [ebx + 1]
jmp 0x42b1ee
dec edi
je 0x42b1ec
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42b1bf
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret