Function at 0x10063250
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x18]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax + 0x30]
mov edx, dword [edi + 0x34]
mov ebx, dword [edx + 0x10]
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x14]
push ecx
push 1
or esi, 0xffffffff
push edi
xor ebp, ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], esi
call fcn.10055b20
cmp ebx, 0xa
jne 0x100632a0
mov ecx, dword [edi + 0x34]
cmp dword [ecx + 0xe8], esi
je 0x100632a0
mov eax, dword [ecx + 0xec]
test eax, eax
je case.default.0x1006332f
cmp ebx, 0x1e
mov ecx, dword [edi + 0x34]
mov edx, dword [ecx + 0x2a0]
mov dword [esp + 0x28], edx
je 0x100632d1
cmp ebx, 4
je 0x100632d1
cmp ebx, 0xc
je 0x100632d1
cmp ebx, 0xb
je 0x100632d1
xor edx, edx
mov dword [esp + 0x24], edx
jmp 0x100632eb
test byte [ecx + 0x26c], 1
mov dword [esp + 0x24], 1
mov edx, dword [esp + 0x24]
jne 0x100632eb
mov ebp, 2
cmp ebx, 3
je 0x10063308
cmp ebx, 0xa
jne 0x1006330d
movzx eax, word [ecx + 0xc2]
cmp ax, 0x70
je 0x1006330d
cmp ax, 0x90
je 0x1006330d
mov ebp, 2
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x11c]
test esi, esi
jne 0x1006331e
lea esi, [eax + 0x3a]
movzx eax, word [esp + 0x38]
add eax, 0xfffffff4
cmp eax, 4
ja case.default.0x1006332f
jmp dword [eax*4 + 0x1006366c]
test edx, edx
push 0
mov dword [esp + 0x18], 1
push ebp
je 0x1006336e
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x20]
push 4
lea edx, [esp + 0x30]
push edx
push str.AllowZeroLength
push esi
push eax
push ecx
call dword [0x1007f028]
jmp 0x100633a4
lea edx, [esp + 0x1c]
push edx
mov edx, dword [edi + 0x34]
lea eax, [esp + 0x24]
push eax
mov eax, dword [ebx*4 + 0x100730c8]
push 4
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
push str.AllowZeroLength
push esi
add edx, 0x3a
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
call dword [0x1007f020]
test eax, eax
jge 0x100633f7
cmp eax, 0xfffffc17
je 0x100633d6
cmp eax, 0xfffff1f0
je 0x100633d6
cmp eax, 0xfffffae7
je 0x100633d6
cmp eax, 0xfffff88e
je 0x100633d6
cmp eax, 0xfffff88d
je 0x100633d6
cmp eax, 0xfffff1ee
jne 0x10063605
mov eax, dword [esp + 0x34]
or dword [eax + 0xbc], 0x10000
pop edi
pop esi
pop ebp
mov byte [eax + 0xf0], 0
xor eax, eax
pop ebx
add esp, 0x20
ret 8
mov al, byte [esp + 0x1c]
mov ecx, dword [esp + 0x34]
pop edi
mov byte [ecx + 0xf0], al
pop esi
mov eax, ecx
or dword [eax + 0xbc], 0x10000
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 8
test edx, edx
push 0
mov dword [esp + 0x18], 1
push ebp
je 0x10063455
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x20]
push 4
lea ecx, [esp + 0x30]
push ecx
push str.Required
push esi
push edx
push eax
call dword [0x1007f028]
jmp 0x1006348b
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [edi + 0x34]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ebx*4 + 0x100730c8]
push 4
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
push str.Required
push esi
add ecx, 0x3a
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
call dword [0x1007f020]
test eax, eax
jge 0x100634d7
cmp eax, 0xfffffc17
je 0x100634e5
cmp eax, 0xfffff1f0
je 0x100634e5
cmp eax, 0xfffffae7
je 0x100634e5
cmp eax, 0xfffff88e
je 0x100634e5
cmp eax, 0xfffff88d
je 0x100634e5
cmp eax, 0xfffff1ee
jne 0x10063605
mov eax, dword [esp + 0x34]
or dword [eax + 0xbc], 0x8000
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 8
mov dl, byte [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov byte [eax + 0xf1], dl
mov eax, dword [esp + 0x34]
or dword [eax + 0xbc], 0x8000
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 8
test edx, edx
je 0x10063509
mov eax, dword [esp + 0x28]
jmp 0x1006350c
or eax, 0xffffffff
mov edi, dword [esp + 0x34]
lea ebx, [edi + 0xf8]
push ebx
add ecx, 0x3a
lea ebx, [edi + 0x104]
push ebx
push esi
push ecx
mov ecx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
push ecx
xor ecx, ecx
cmp ebp, 2
sete cl
push eax
push ecx
push edx
push edi
call fcn.1005c570
test eax, eax
jne 0x10063662
or dword [edi + 0xbc], 0x6000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
push 0xffde
push edx
push eax
call fcn.1004af50
test eax, eax
jne 0x10063662
push eax
mov eax, dword [0x1007eed0]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
push 0xffdc
push eax
call ebp
cmp dword [esp + 0x38], 0
mov ecx, dword [eax + 0x38]
push ecx
push str.DefaultValue
push esi
je 0x100635b8
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
push edx
push eax
call dword [0x1007f028]
jmp 0x100635d7
mov edx, dword [edi + 0x34]
mov eax, dword [ebx*4 + 0x100730c8]
mov ecx, dword [esp + 0x40]
add edx, 0x3a
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
call dword [0x1007f020]
test eax, eax
jge 0x10063621
cmp eax, 0xfffffc17
je 0x10063652
cmp eax, 0xfffff1f0
je 0x10063652
cmp eax, 0xfffffae7
je 0x10063652
cmp eax, 0xfffff88e
je 0x10063652
cmp eax, 0xfffff88d
je 0x10063652
cmp eax, 0xfffff1ee
je 0x10063652
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
push 0
push ecx
push edx
push eax
call fcn.1005a1e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
mov eax, dword [esp + 0x18]
mov ecx, dword [0x1007eed0]
push eax
push ecx
call ebp
mov edx, dword [eax + 0x38]
mov esi, dword [esp + 0x38]
push edx
lea eax, [esi + 0x110]
push eax
push esi
call fcn.10055d10
test eax, eax
je 0x10063656
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
mov esi, dword [esp + 0x34]
or dword [esi + 0xbc], 0x1000
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8