Function at 0x10020a76
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x10071cfb
call fcn.10070f08
sub esp, 0x8c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x78], edx
push 4
lea ecx, [ebp - 0x48]
call fcn.1001a500
xor ebx, ebx
lea ecx, [ebp - 0x3c]
push 1
mov dword [ebp - 4], ebx
call fcn.1001a500
mov byte [ebp - 4], 1
mov dword [ebp - 0x10], 0x5cefd06
mov dword [ebp - 0x14], ebx
jmp 0x10020ac7
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10020ab7
mov dword [ebp - 0x14], ebx
jmp 0x10020ae2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x2ba39464
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10020ad2
mov dword [ebp - 0x14], ebx
jmp 0x10020afe
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x98], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10020aed
mov eax, dword [ebp - 0x3c]
mov dword [eax], 3
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x1c], 0xf6cbcb1a
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x14], ebx
jmp 0x10020bf3
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0xdfe0
mov ecx, dword [ebp - 0x48]
setg al
cmp eax, 0xe008fb0b
mov eax, dword [ebp - 0x3c]
sbb esi, esi
xor edx, edx
neg esi
sub esi, dword [ecx]
mov eax, dword [eax]
dec esi
cmp esi, dword [ecx + eax*4]
mov eax, dword [ebp - 0x10]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setge bl
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
setg dl
xor ebx, ebx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], ebx
jmp 0x10020bea
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], 0x7f59ec13
mov dword [ebp - 0x24], 0xa34071e9
cmp dword [eax], 0x8461
jg 0x10020baa
inc dword [ebp - 0x1c]
jmp 0x10020be0
mov dword [ebp - 0x7c], 1
xor edx, edx
mov dword [ebp - 0x24], 0x7656540f
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x3c]
cmp dword [eax], ecx
mov eax, dword [ebp - 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, 5
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x24], 0x23cb8e00
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x10020b8c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x10020b2a
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
je 0x10020c31
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10020d20
push 0xa96
push 0x1d50
push 0xbb0
call dword [sym.imp.GDI32.dll_LineTo]
jmp 0x10020d20
push 4
lea ecx, [ebp - 0x64]
call fcn.1001a500
xor esi, esi
mov dword [ebp - 0x1c], ebx
inc esi
cmp dword [ebp - 0x1c], 4
jge 0x10020c55
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
jmp 0x10020c41
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10020c6a
push ebx
push 0x827
call dword [sym.imp.USER32.dll_ClientToScreen]
mov dword [ebp - 0x24], 0x2450
cmp dword [ebp - 0x24], 0xb79
jge 0x10020cda
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x100081a4
call fcn.1005803b
mov ecx, dword [ebp - 0x8c]
add esp, 0x10
mov edx, dword [ebp - 0x74]
cmp ecx, dword [ebp - 0x58]
jne 0x10020caf
test edx, edx
jne 0x10020caf
push 0x1000832c
jmp 0x10020cd4
sub ecx, dword [ebp - 0x58]
mov eax, ecx
sub eax, edx
test eax, eax
jle 0x10020cc1
push 0x10008330
jmp 0x10020cd4
lea eax, [ecx + edx]
test eax, eax
jns 0x10020ccf
push 0x10008334
jmp 0x10020cd4
push 0x10008338
call fcn.100591b7
pop ecx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], esi
cmp dword [ecx], 0xeb256cd2
sbb eax, eax
xor edx, edx
inc eax
cmp dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x64]
setg cl
add ecx, dword [eax]
je 0x10020d09
mov eax, esi
cmp dword [ebp - 0x20], ebx
jne 0x10020d0b
mov eax, ebx
push dword [ebp - 0x64]
mov dword [ebp - 0x14], eax
call fcn.10058dbb
pop ecx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x3c]
dec dword [eax]
jns 0x10020b0d
push eax
call fcn.10058dbb
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x48], 0
pop ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
je 0x10020d57
push dword [ebp - 0x48]
call fcn.10058dbb
pop ecx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
push 2
pop esi
push esi
lea ecx, [ebp - 0x88]
call fcn.1001a500
mov dword [ebp - 0x20], 0xd7953644
xor edx, edx
mov dword [ebp - 0x20], 0x25cbd945
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0x378f1e0c
mov dword [ebp - 0x20], 0xab9737e0
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x20], 0xfff6
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x10], ebx
jmp 0x10020dce
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10020dbf
mov eax, dword [ebp - 0x88]
or dword [ebp - 4], 0xffffffff
push eax
mov dword [eax + 4], 5
call fcn.10058dbb
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x1c], 0x17c10977
mov dword [ebp - 0x14], 0x799040c3
mov dword [ebp - 0x10], 0x7e80a7c6
pop ecx
mov dword [ebp - 0x10], ebx
jmp 0x10020e22
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x30], 0xda439beb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10020e14
cmp dword [ebp - 0x30], ebx
jne 0x10020e40
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x1c], eax
jg 0x10020e40
mov edx, ebx
jmp 0x10020e43
xor edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, edx
mov eax, dword [ebp - 0x28]
setl cl
sub ecx, eax
jne 0x10020e62
cmp dword [ebp - 0x30], ebx
jne 0x10020e62
mov eax, ebx
jmp 0x10020e65
xor eax, eax
inc eax
cmp dword [ebp - 0x30], eax
jg 0x10020f0e
push esi
lea ecx, [ebp - 0x70]
call fcn.1001a500
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x10], ebx
jmp 0x10020e93
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xf4f23013
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10020e83
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10020ea8
push ebx
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x70]
neg ecx
sbb ecx, ecx
neg ecx
mov esi, dword [eax]
xor eax, eax
cmp ecx, 0xfffffffa
setne al
xor ecx, ecx
cmp eax, esi
mov eax, dword [ebp - 0x30]
setne cl
xor edx, edx
cmp ecx, esi
setge dl
xor ebx, ebx
cmp edx, eax
mov edx, dword [ebp - 0x70]
push edx
setne bl
xor ecx, ecx
mov eax, dword [edx + 4]
neg eax
cmp eax, ebx
setl cl
mov dword [ebp - 0x10], ecx
call fcn.10058dbb
pop ecx
xor ebx, ebx
push 2
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
pop esi
jmp 0x10020f59
mov dword [ebp - 0x10], 0xbd2f23d3
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10020f2a
push ebx
push 0x92
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [ebp - 0x10]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov ecx, 0x634d71b3
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
sub ecx, eax
test ecx, ecx
setle dl
sub edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x1002107f
push 1
lea ecx, [ebp - 0x54]
call fcn.1001a500
mov dword [ebp - 0x24], 0xd3f58f29
mov dword [ebp - 0x10], ebx
jmp 0x10020f87
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x820eaada
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 1
jl 0x10020f77
mov dword [ebp - 0x10], ebx
jmp 0x1002105a
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x10021057
mov dword [ebp - 0x24], 0xfffffffa
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10020fc9
push 0x1c43
push 0x2580
push 0x1d1b
call dword [sym.imp.USER32.dll_EnableScrollBar]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
push 0
mov edx, dword [ebp + eax*4 - 0x30]
mov eax, dword [ebp - 0x10]
cmp eax, 1
mov eax, dword [ebp - 0x54]
setle cl
xor ebx, ebx
cmp ecx, edx
setle bl
sub ebx, dword [eax]
mov eax, dword [ebp - 0x14]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
mov eax, dword [ebp + eax*4 - 0x30]
cmp ebx, eax
mov eax, dword [ebp - 0x54]
setg dl
pop ebx
sub edx, dword [eax]
mov eax, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
mov ecx, dword [ebp + eax*4 - 0x30]
mov eax, dword [ebp - 0x54]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x30]
add eax, ecx
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, edx
mov eax, dword [ebp - 0x14]
setl cl
mov dword [ebp + eax*4 - 0x30], ecx
imul eax, ecx, 0xc01c
xor ecx, ecx
cmp eax, 0x6e03
setge cl
mov dword [ebp - 0x24], ecx
dec dword [ebp - 0x14]
jns 0x10020fa4
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffffb
je 0x10020f95
cmp dword [ebp - 0x54], 0
je 0x1002107c
push dword [ebp - 0x54]
call fcn.10058dbb
pop ecx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff9
jl 0x10020f61
mov dword [edi], ebx
cmp dword [edi], 4
jge 0x100210a5
mov edx, dword [ebp - 0x78]
mov ecx, dword [edi]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [edi]
cmp dword [edi], 4
jl 0x10021093
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret