Function at 0x42ac64
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 0x42afa4
mov eax, dword [eax + 8]
test edx, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
je 0x42ac9a
cmp dword [edx], 0
je 0x42ac9a
mov ebx, dword [edx]
dec ebx
jmp 0x42ac9d
mov ebx, eax
dec ebx
cmp eax, ebx
jbe 0x42afa4
cmp dword [ebp + 0x14], 0
lea edi, [ebx + 1]
je 0x42acba
mov eax, dword [ebp + 0x14]
cmp edi, dword [eax]
jbe 0x42acba
mov edx, dword [ebp + 0x14]
mov edi, dword [edx]
test edi, edi
jbe 0x42afa4
test byte [esi + 1], 0x10
je 0x42ad4f
call fcn.00423254
push esi
call fcn.00422b70
pop ecx
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 4]
jae 0x42acf8
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.00422b70
pop ecx
jmp 0x42acfd
call fcn.00422ba8
lea edx, [ebx + 1]
push edx
call fcn.00422e0c
pop ecx
push 2
call fcn.00422330
pop ecx
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
test byte [eax + 0x10], 0x80
je 0x42ad3a
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x18], 0
je 0x42ad3a
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42accc
jmp 0x42afa4
test byte [esi + 1], 4
je 0x42ad99
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 0x42ad84
mov ecx, dword [ebp + 0x18]
push ecx
push esi
push eax
call fcn.0043f810
add esp, 0xc
test eax, eax
jne 0x42ad84
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42ad55
jmp 0x42afa4
test byte [esi], 0x1a
je 0x42ade8
push esi
call fcn.0043df40
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 0x42add3
push esi
call fcn.0043df40
fcomp qword [ebp - 0xc]
pop ecx
fnstsw ax
sahf
jne 0x42add3
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42ada8
jmp 0x42afa4
test byte [esi], 0x60
je 0x42ae71
cmp dword [ebp + 0x18], 0
je 0x42ae38
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 0x42ae23
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42ae23
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + 0xc]
jne 0x42ae23
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42adf7
jmp 0x42afa4
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 0x42ae5c
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42ae5c
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42ae38
jmp 0x42afa4
test byte [esi], 0x80
je 0x42aebd
push esi
call fcn.0043dee4
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 0x42aea8
push esi
call fcn.0043dee4
pop ecx
cmp eax, dword [ebp - 0x10]
jne 0x42aea8
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42ae80
jmp 0x42afa4
test dword [esi], 0xfffbffff
jne 0x42aef9
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 0x42aee4
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42aec5
jmp 0x42afa4
test byte [esi], 1
je 0x42af30
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 0x42af22
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42af22
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42aefe
jmp 0x42afa4
cmp dword [ebp + 0x18], 0
je 0x42af6c
test byte [esi + 1], 0x80
je 0x42af6c
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 0x42af5e
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42af5e
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42af3c
jmp 0x42afa4
cmp dword [ebp + 0x18], 0
je 0x42afa4
test byte [esi], 4
je 0x42afa4
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 0x42af98
mov ecx, dword [eax + 8]
cmp ecx, dword [esi + 8]
jne 0x42af98
lea eax, [ebx + 1]
jmp 0x42afa6
dec edi
je 0x42afa4
mov edx, ebx
add ebx, 0xffffffff
test edx, edx
jne 0x42af77
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret