Function at 0x1005c570
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x18]
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
push 0xffde
neg edi
push ebx
sbb edi, edi
push eax
mov dword [esp + 0x1c], 0xc
and edi, 2
call fcn.1004af50
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x24], ebp
jne 0x1005c756
mov edx, dword [0x1007eed0]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
push edi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0xffdc
push edx
call ebx
cmp dword [esp + 0x34], 0
mov eax, dword [eax + 0x38]
mov ebp, dword [esp + 0x4c]
push eax
push str.ValidationRule
push ebp
je 0x1005c5f2
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
push ecx
push edx
call dword [0x1007f028]
jmp 0x1005c60e
mov ecx, dword [esp + 0x54]
mov edx, dword [0x100730d4]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
call dword [0x1007f020]
mov esi, eax
test esi, esi
jge 0x1005c644
cmp esi, 0xfffffc17
je 0x1005c670
cmp esi, 0xfffff1f0
je 0x1005c670
cmp esi, 0xfffffae7
je 0x1005c670
cmp esi, 0xfffff88e
je 0x1005c670
cmp esi, 0xfffff88d
je 0x1005c670
cmp esi, 0xfffff1ee
jmp 0x1005c66a
mov edx, dword [esp + 0x14]
mov eax, dword [0x1007eed0]
push edx
push eax
call ebx
mov ecx, dword [eax + 0x38]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
call fcn.10055d10
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1005c72d
mov eax, dword [0x1007eed0]
push 0
push edi
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
push 0xffdc
push eax
mov dword [esp + 0x28], 0xa
call ebx
cmp dword [esp + 0x34], 0
mov ecx, dword [eax + 0x38]
push ecx
push str.ValidationText
push ebp
je 0x1005c6b5
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
push edx
push eax
call dword [0x1007f028]
jmp 0x1005c6d0
mov edx, dword [esp + 0x54]
mov eax, dword [0x100730d4]
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push eax
push ecx
push edx
call dword [0x1007f020]
mov esi, eax
test esi, esi
jge 0x1005c708
cmp esi, 0xfffffc17
je 0x1005c747
cmp esi, 0xfffff1f0
je 0x1005c747
cmp esi, 0xfffffae7
je 0x1005c747
cmp esi, 0xfffff88e
je 0x1005c747
cmp esi, 0xfffff88d
je 0x1005c747
cmp esi, 0xfffff1ee
jne 0x1005c72d
jmp 0x1005c747
mov eax, dword [esp + 0x14]
mov ecx, dword [0x1007eed0]
push eax
push ecx
call ebx
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
call fcn.10055d10
mov dword [esp + 0x24], eax
test esi, esi
jge 0x1005c747
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
push 0
push edx
push eax
push esi
call fcn.1005a1e0
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0
je 0x1005c79e
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
mov eax, dword [esi]
test eax, eax
je 0x1005c76a
mov ecx, dword [ebx + 0x18]
push eax
push ecx
call fcn.1006a020
xor ecx, ecx
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov esi, dword [esp + 0x40]
mov eax, dword [esi]
cmp eax, ecx
je 0x1005c788
mov edx, dword [ebx + 0x18]
push eax
push edx
call fcn.1006a020
xor eax, eax
pop edi
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 8
ret 0x28
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x28