Function at 0x42c990
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
xor edi, edi
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test byte [ebx + 1], 0x80
mov esi, dword [eax + 0xc]
je 0x42cadb
mov eax, dword [ebx + 8]
mov ax, word [eax + 0xc]
test ax, ax
je 0x42caa5
movzx edx, ax
mov ecx, dword [0x538bb0]
cmp dword [ebp + 0x10], 0
mov edi, dword [ecx + edx*4]
je 0x42ca86
mov edx, dword [ebp + 0x10]
mov word [edx + 0xc], ax
mov eax, dword [ebx + 8]
cmp word [eax + 0xe], 0
je 0x42ca2b
cmp dword [eax + 4], 0
je 0x42ca24
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
push eax
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
push ebx
call fcn.0043f03c
add esp, 8
jmp 0x42ca2b
push ebx
call fcn.0043edc0
pop ecx
mov word [ebp - 2], 4
mov dx, word [edi + 0x46]
mov eax, dword [edi + 0x48]
and dx, word [esi + 4]
movzx ecx, dx
shl ecx, 2
add ecx, ecx
add eax, ecx
movzx ecx, word [eax]
shl ecx, 5
mov edx, dword [edi + 8]
add edx, ecx
cmp esi, dword [edx]
jne 0x42ca71
mov ax, word [eax]
mov ecx, dword [ebp + 0x10]
mov word [ecx + 0xe], ax
mov eax, dword [ebp + 0x10]
push eax
push edx
call fcn.0042c708
add esp, 8
jmp 0x42d184
add eax, 2
dec word [ebp - 2]
mov dx, word [ebp - 2]
test dx, dx
jne 0x42ca46
jmp 0x42cfff
push esi
push edi
call fcn.0042b5e0
add esp, 8
test eax, eax
je 0x42cfff
mov eax, dword [eax + 8]
jmp 0x42d184
mov ax, word [0x538b7c]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx + 1], 0x10
je 0x42cb29
cmp esi, dword [0x538538]
jne 0x42caf3
mov eax, 0x53852c
jmp 0x42d184
mov ax, word [0x538b7e]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx + 1], 0x20
je 0x42cd33
cmp dword [ebp + 0x10], 0
je 0x42cfff
push ebx
call fcn.0043f250
pop ecx
mov ebx, eax
test byte [ebx + 2], 1
je 0x42cfff
cmp esi, dword [0x538b28]
jne 0x42cbbc
mov edx, dword [ebx + 0x10]
push edx
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043e4a4
add esp, 8
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xc]
mov ecx, dword [edx]
movzx eax, word [ecx + 0x10]
test eax, eax
jle 0x42cbb2
push 0x1a
push 1
call fcn.0043347c
add esp, 8
test eax, eax
je 0x42cbb2
push 0xffffffffffffffff
push 1
call fcn.0043347c
add esp, 8
push eax
call fcn.0043dfe8
pop ecx
mov dword [ebx + 0x10], eax
mov eax, 0x538b1c
jmp 0x42d184
cmp esi, dword [0x538b48]
jne 0x42cc1e
mov edx, dword [ebx + 8]
test byte [edx + 1], 0x20
je 0x42cbdb
mov ecx, dword [ebx + 8]
push ecx
call fcn.0043f598
pop ecx
mov esi, eax
jmp 0x42cbde
mov esi, dword [ebx + 8]
test byte [esi], 4
je 0x42cc0f
mov eax, dword [ebx + 0x10]
push eax
push esi
call fcn.0043d210
add esp, 8
mov esi, eax
test esi, esi
je 0x42cc0f
push esi
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov eax, 0x538b3c
jmp 0x42d184
cmp esi, dword [0x538b38]
jne 0x42ccbb
mov edx, dword [ebx + 8]
test byte [edx + 1], 0x20
je 0x42cc57
mov ecx, dword [ebx + 8]
push ecx
call fcn.0043f598
pop ecx
push eax
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
jmp 0x42cc73
mov edx, dword [ebx + 8]
push edx
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xc]
mov ecx, dword [edx]
movzx eax, word [ecx + 0x10]
test eax, eax
jle 0x42ccb1
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 8]
push eax
call fcn.0043f598
pop ecx
push eax
mov edx, dword [ebx + 8]
push edx
call fcn.0043ee8c
add esp, 8
mov eax, 0x538b2c
jmp 0x42d184
cmp esi, dword [0x538b58]
jne 0x42cfff
push ebx
call fcn.0043f598
pop ecx
mov ebx, eax
push ebx
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
movzx ecx, word [edx + 0x10]
test ecx, ecx
jle 0x42cd24
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 8]
push ecx
call fcn.0043f598
pop ecx
push eax
push ebx
call fcn.0043ee8c
add esp, 8
mov eax, 0x538b4c
jmp 0x42d184
test byte [ebx + 1], 1
je 0x42cde0
cmp word [0x538b8e], 0
je 0x42cd76
movzx edx, word [0x538b8e]
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x42cd76
mov eax, dword [ebp - 8]
jmp 0x42d184
cmp esi, dword [0x538ae8]
je 0x42cd86
cmp esi, dword [0x538538]
jne 0x42cdad
mov edx, dword [ebx + 8]
cmp dword [edx + 8], 0
jne 0x42cda5
mov ecx, dword [ebx + 8]
cmp dword [ecx + 0xc], 0
je 0x42cda5
mov eax, dword [ebx + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
jmp 0x42d184
mov eax, dword [ebx + 8]
jmp 0x42d184
cmp esi, dword [0x538af8]
jne 0x42cfff
mov edx, dword [ebx + 8]
mov ecx, dword [edx]
push ecx
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043da04
add esp, 8
mov eax, 0x538aec
jmp 0x42d184
test byte [ebx], 4
je 0x42ce62
cmp word [0x538b86], 0
je 0x42ce1e
movzx edx, word [0x538b86]
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x42ce1e
mov eax, dword [ebp - 0xc]
jmp 0x42d184
cmp esi, dword [0x538b08]
jne 0x42ce3e
push ebx
call fcn.0043d5f4
pop ecx
push eax
call fcn.0043e14c
pop ecx
mov eax, 0x538afc
jmp 0x42d184
cmp esi, dword [0x538b18]
jne 0x42cfff
push ebx
call fcn.0043d654
pop ecx
push eax
call fcn.0043e14c
pop ecx
mov eax, 0x538b0c
jmp 0x42d184
test byte [ebx + 1], 4
je 0x42ce9e
mov ax, word [0x538b80]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx], 0x20
je 0x42ced9
mov ax, word [0x538b82]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx], 0x40
je 0x42cf14
mov ax, word [0x538b84]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx], 0x1a
je 0x42cf4f
mov ax, word [0x538b8c]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx], 0x80
je 0x42cf87
mov ax, word [0x538b88]
test ax, ax
je 0x42cfff
movzx edx, ax
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test byte [ebx], 1
je 0x42cfbe
cmp word [0x538b90], 0
je 0x42cfff
movzx edx, word [0x538b90]
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
test eax, eax
jne 0x42d184
jmp 0x42cfff
test dword [ebx], 0xfffbffff
jne 0x42cfff
cmp word [0x538b8a], 0
je 0x42cfff
movzx edx, word [0x538b8a]
mov ecx, dword [0x538bb0]
mov edi, dword [ecx + edx*4]
mov eax, dword [ebp + 0x10]
push eax
push esi
push edi
call fcn.0042c8f8
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42cfff
mov eax, dword [ebp - 0x10]
jmp 0x42d184
cmp esi, dword [0x538b68]
jne 0x42d076
cmp dword [ebp + 0x10], 0
je 0x42d132
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x2c], 0
je 0x42d045
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, dword [eax + 0x2c]
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 8]
mov ebx, dword [edx + ebx*4]
jmp 0x42d047
xor ebx, ebx
test ebx, ebx
je 0x42d132
push ebx
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov eax, 0x538b5c
jmp 0x42d184
cmp esi, dword [0x538b78]
jne 0x42d105
cmp dword [ebp + 0x10], 0
je 0x42d132
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x2c], 0
je 0x42d0c0
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, dword [eax + 0x2c]
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 8]
mov ebx, dword [edx + ebx*4]
jmp 0x42d0c2
xor ebx, ebx
test ebx, ebx
je 0x42d132
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 8]
push ecx
push ebx
call fcn.0043ee8c
add esp, 8
push ebx
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
add eax, 0x10
push eax
call fcn.0043ee8c
add esp, 8
mov eax, 0x538b6c
jmp 0x42d184
cmp esi, dword [0x538ab8]
jne 0x42d114
mov eax, 0x538aac
jmp 0x42d184
cmp esi, dword [0x538ac8]
jne 0x42d123
mov eax, 0x538abc
jmp 0x42d184
cmp esi, dword [0x538ad8]
jne 0x42d132
mov eax, 0x538acc
jmp 0x42d184
cmp dword [ebp + 0x10], 0
je 0x42d182
test edi, edi
je 0x42d17b
cmp word [edi + 0x34], 0
je 0x42d17b
mov edx, dword [0x538978]
push edx
push edi
call fcn.0042b5e0
add esp, 8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x42d17b
mov ecx, dword [ebp - 0x14]
sub ecx, dword [edi + 8]
test ecx, ecx
jns 0x42d169
add ecx, 0x1f
sar ecx, 5
mov eax, dword [ebp + 0x10]
mov word [eax + 0xe], cx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
jmp 0x42d184
mov eax, 0x538a5c
jmp 0x42d184
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret