Function at 0x10017851
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0x100894ee
call fcn.10088cbc
sub esp, 0x70
push ebx
xor ebx, ebx
push esi
test cl, cl
je 0x10017af3
mov dword [ebp - 0x24], 0xc874
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x1c], 0xfadf6285
xor eax, eax
mov dword [ebp - 0x3c], 5
inc eax
mov dword [ebp - 0x34], 0x4b7c7008
push edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], eax
push 3
mov dword [ebp - 0x18], 0x21cd4309
pop edi
mov dword [ebp - 0x28], 0xc18ab9c
mov dword [ebp - 0x20], 0xb28787d6
mov dword [ebp - 0x14], 0xa33a4d1b
push edi
mov dword [ebp - 0x2c], eax
call fcn.10015911
push edi
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], ebx
call fcn.10015911
xor edx, edx
lea ecx, [ebp - 0x60]
inc edx
push edi
mov byte [ebp - 4], dl
call fcn.10015911
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x14], ebx
jmp 0x100178ee
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100178e2
mov dword [ebp - 0x14], ebx
jmp 0x10017908
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], 0x5a8df044
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100178f8
mov dword [ebp - 0x14], ebx
jmp 0x10017922
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0xc0ce695e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10017912
cmp dword [ebp - 0x24], ebx
je 0x10017974
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x34]
dec dword [ecx + 8]
mov eax, dword [ecx + 8]
inc eax
cmp eax, edi
je 0x10017949
mov eax, dword [ebp - 0x54]
cmp dword [eax + 8], ebx
jne 0x10017949
mov eax, ebx
jmp 0x1001794c
xor eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x3dcedb19
dec dword [eax]
mov eax, dword [ebp - 0x48]
imul ecx, dword [eax]
test ecx, ecx
jns 0x10017974
xor ecx, ecx
inc ecx
jmp 0x10017976
mov ecx, ebx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
setl dl
imul edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, 0x59f7c1ae
mov dword [ebp - 0x18], ecx
je 0x100179d7
mov dword [ebp - 0x20], ebx
jmp 0x10017ac5
xor edx, edx
inc edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], 0xd081fb71
cmp dword [ebp - 0x14], ebx
je 0x10017a3c
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ecx + 4]
jl 0x10017a0a
cmp dword [ebp - 0x28], ebx
jne 0x10017a0a
mov eax, ebx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jne 0x10017a17
cmp dword [ebp - 0x14], ebx
jne 0x10017a19
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x34]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x24]
je 0x10017a3f
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [eax]
setge cl
cmp ecx, dword [ebp - 0x3c]
jl 0x10017a71
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x10017ac5
push 0x1247
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetPolyFillMode]
jmp 0x10017ac5
mov dword [ebp - 0x3c], 0xd320
mov dword [ebp - 0x18], ebx
jmp 0x10017a9a
mov dword [ebp - 0x1c], ebx
jmp 0x10017a92
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], 0x2d1e5678
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10017a82
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x19
je 0x10017a7d
mov dword [ebp - 0x14], ebx
jmp 0x10017abf
mov dword [ebp - 0x1c], ebx
jmp 0x10017ab4
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6c], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10017aaa
inc dword [ebp - 0x64]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff9
jge 0x10017aa5
lea ecx, [ebp - 0x60]
call fcn.1001614d
lea ecx, [ebp - 0x48]
call fcn.1001614d
lea ecx, [ebp - 0x54]
call fcn.1001614d
push ebx
push ebx
push 0xfe5
call esi
push eax
call dword [sym.imp.USER32.dll_GetDlgItemInt]
pop edi
jmp 0x10017b7b
xor ecx, ecx
mov dword [ebp - 0x1c], 0x17571177
mov dword [ebp - 0x1c], ebx
inc ecx
jmp 0x10017b10
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x30], 0x1dbe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10017b02
mov dword [ebp - 0x1c], 0xfffffff2
cmp dword [ebp - 0x1c], 0xfffffff0
jl 0x10017b70
push 0xfffffffffffffff7
pop esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x3c], 0xfffffff8
mov dword [ebp - 0x74], ebx
cmp dword [ebp - 0x74], ebx
jl 0x10017b67
mov eax, dword [ebp - 0x74]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x30]
cmp eax, 0x63a88e00
mov eax, dword [ebp - 0x74]
setl dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x30]
cmp eax, edx
setl cl
mov dword [ebp - 0x3c], ecx
dec dword [ebp - 0x74]
jns 0x10017b40
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff0
jge 0x10017b25
push 0x8ed
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret