Function at 0x421694
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
mov eax, dword [ebx]
mov ebp, dword [eax - 0xc]
mov esi, dword [eax - 8]
mov edi, dword [eax - 4]
test byte [esi + 1], 0x20
je 0x4216c0
push esi
call fcn.0043f7e0
pop ecx
mov esi, eax
test byte [esi], 4
je 0x4217b0
test dword [edi], 0x47b
je 0x4217b0
push 2
push edi
push esi
call fcn.0043cd40
add esp, 0xc
test eax, eax
je 0x42172a
and dword [ebp], 0xfffbf7ff
push ebp
push eax
call fcn.0043f414
add esp, 8
sub dword [ebx], 4
mov eax, dword [ebx]
mov eax, dword [eax]
test dword [eax], 0xb405
je 0x42170c
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421722
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
jmp 0x421a40
push ebp
push edi
push esi
push esi
push 0x15
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x421787
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421752
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421768
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a40
push eax
call fcn.0043f008
pop ecx
jmp 0x421a40
push ebp
push edi
push esi
push 3
push 0x2f
call fcn.0046c000
pop ecx
push eax
push 0
push 0x46d
push 2
call fcn.00457160
add esp, 0x20
jmp 0x421a40
mov eax, dword [edi]
test al, 2
je 0x4217c1
mov edx, dword [edi + 8]
mov dword [esp], edx
jmp 0x421860
test al, 8
je 0x4217d0
mov eax, dword [edi + 8]
mov dword [esp], eax
jmp 0x421860
test al, 0x10
je 0x4217e1
fld qword [edi + 8]
call fcn.004afcf0
mov dword [esp], eax
jmp 0x421860
push ebp
push edi
push esi
push esi
push 0x15
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x42183e
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421809
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x42181f
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a40
push eax
call fcn.0043f008
pop ecx
jmp 0x421a40
push edi
push 1
push 0x2f
call fcn.0046c000
pop ecx
push eax
push 0
push 0x42d
push 1
call fcn.00457160
add esp, 0x18
jmp 0x421a40
test byte [esi + 1], 0x80
je 0x4219cd
test byte [esi + 1], 0x80
je 0x4218d7
mov edx, dword [esi + 8]
cmp word [edx + 0xc], 0
je 0x4218d7
push ebp
push edi
push esi
push esi
push 0x15
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x4218d7
sub dword [ebx], 4
mov ecx, dword [ebx]
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x4218a2
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4218b8
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a40
push eax
call fcn.0043f008
pop ecx
jmp 0x421a40
cmp dword [esp], 0
jbe 0x421941
mov edx, dword [esi + 8]
mov ecx, dword [edx + 4]
cmp ecx, dword [esp]
jb 0x421941
and dword [ebp], 0xfffbf7ff
push ebp
mov ecx, dword [esp + 4]
mov eax, dword [esi + 8]
shl ecx, 3
mov edx, dword [eax]
lea ecx, [ecx + ecx*2]
add edx, ecx
add edx, 0xffffffe8
push edx
call fcn.0043f2d4
add esp, 8
sub dword [ebx], 4
mov eax, dword [ebx]
mov eax, dword [eax]
test dword [eax], 0xb405
je 0x421923
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421939
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
jmp 0x421a40
test byte [esi + 1], 0x80
je 0x421951
mov edx, dword [esi + 8]
cmp word [edx + 0xc], 0
jne 0x4219ae
push ebp
push edi
push esi
push esi
push 0x15
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x4219ae
sub dword [ebx], 4
mov ecx, dword [ebx]
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x421979
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x42198f
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a40
push eax
call fcn.0043f008
pop ecx
jmp 0x421a40
push edi
push 1
push 0x2f
call fcn.0046c000
pop ecx
push eax
push 0
push 0x46d
push 2
call fcn.00457160
add esp, 0x18
jmp 0x421a40
push ebp
push edi
push esi
push esi
push 0x15
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x421a23
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4219f5
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a0b
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421a40
push eax
call fcn.0043f008
pop ecx
jmp 0x421a40
push edi
push 1
push 0x2f
call fcn.0046c000
pop ecx
push eax
push 0
push 0x42d
push 1
call fcn.00457160
add esp, 0x18
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret