Function at 0x20af5ed7
Capabilities:
Allocate thread local storage
Set thread local storage value

Disassembly:
push esi
call fcn.20af5f3b
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [0x20b0e248], eax
je 0x20b018fd
push 0x74
push 1
call fcn.20af5f66
mov esi, eax
add esp, 8
test esi, esi
je 0x20b018fd
mov eax, dword [0x20b0e248]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x20b018fd
push esi
call fcn.20af5ff7
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi], eax
mov dword [esi + 4], 0xffffffff
mov eax, 1
pop esi
ret
je 0x20b01920
inc ebx
outsd dx, dword [esi]
jb 0x20b01974
xor dword cs:[esi], ebx
xor byte [esi + eax], bl
add edx, dword [ebp + 4]
or edx, dword [ebx]
adc eax, 0x7263694d
outsd dx, dword [esi]
jae 0x20b01986
je 0x20b0193a
inc ebx
outsd dx, dword [esi]
jb 0x20b0198e
outsd dx, dword [esi]
jb 0x20b01982
popal
je 0x20b0198c
outsd dx, dword [esi]
outsb dx, byte [esi]
xor dword [ecx], esp
xor byte [edi], bl
push es
add edx, dword [ebp + 4]
add edx, dword [ebx]
sbb byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x20b019a6
je 0x20b0195a
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x20b0195f
inc ecx
jne 0x20b019b6
push 0x7469726f
jns 0x20b01979
push ds
pop ss
or eax, 0x34303630
xor byte [ecx + esi], dh
aaa
xor al, 0x34
xor dword [edx + ebx*2], esi
pop ss
or eax, 0x34303231
xor dh, byte [esi]
xor byte [edi], dh
xor byte [eax], dh
xor byte [eax], dh
pop edx
xor byte [ecx + 0x300b31a6], al
or dword [esi], eax
add edx, dword [ebp + 4]
push es
adc eax, dword [edx]
push ebp
push ebx
xor dword [ebx], edx
xor byte [ecx], dl
push es
adc esi, dword [eax]
adc dword [esi], eax
add edx, dword [ebp + 4]
or byte [ebx], dl
or dl, byte [edi + 0x61]
jae 0x20b019ef
push 0x74676e69
outsd dx, dword [esi]
imul ebp, dword [esi + 0x67], 0x316e6f74
outsb dx, byte [esi]
xor dword [eax], edx
xor byte [esi], cl
adc byte [eax], dh
push cs
push es
add edx, dword [ebp + 4]
pop es
adc eax, dword [edi]
push edx
insd dword es:[edi], dx
outsd dx, dword [esi]
outsb dx, byte [esi]
xor dword fs:[esi], ebx
xor byte [esi + eax], bl
add edx, dword [ebp + 4]
or dl, byte [ebx]
adc eax, 0x7263694d
add al, 0xa
adc edx, dword [0x7263694d]
outsd dx, dword [esi]
jae 0x20b01a20
je 0x20b019d4
inc ebx
outsd dx, dword [esi]
jb 0x20b01a28
outsd dx, dword [esi]
jb 0x20b01a1c
je 0x20b01a26
outsd dx, dword [esi]
outsb dx, byte [esi]
xor dword [ebx], ebp
xor byte [ecx], ch
push es
add edx, dword [ebp + 4]
or edx, dword [ebx]
and al, byte [ebx + 0x6f]
jo 0x20b01a47
jb 0x20b01a39
push 0x63282074
sub dword [eax], esp
xor dh, byte [eax]
xor byte [eax], dh
and byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x20b01a53
sub byte [ebx + 0x29], ah
and byte [edx], dh
xor byte [eax], dh
xor byte [eax], ah
dec ebp
imul esp, dword [ebx + 0x72], 0x666f736f
je 0x20b01a07
je 0x20b01a07
inc ebx
outsd dx, dword [esi]
jb 0x20b01a5b
xor dword cs:[ebx], esp
xor byte [ecx], ah
push es
and dword [esi], eax
add edx, dword [ebp + 4]
add edx, dword [ebx]
sbb cl, byte [ebp + 0x69]
arpl word [edx + 0x6f], si
jae 0x20b01a6d
je 0x20b01a21
and byte [ebx + 0x6f], al
inc ebx
outsd dx, dword [esi]
and byte gs:[ebx + 0x69], dl
outsb dx, byte [si]
imul ebp, dword [esi + 0x67], 0x41435020
imul esp, dword [edi + 0x6e], 0x20676e69
push eax
inc ebx
inc ecx
xor byte [edx + 0xd302001], al
push es
or dword [edx], ebp
xchg byte [eax - 0x7a], cl
test dword [0x5010101], 0x1820300
xchg bh, dh
or eax, 0x5010101
add byte [ebx], al
add byte [ecx], 0xd
add dword [ecx], eax
add eax, 0x1820300
add dword [0x1820300], eax
add dword [0x1823000], ecx
or eax, 0x1823000
add byte [eax], dh
add byte [ecx], 8
add al, byte [edx - 0x3cfffeff]
or byte [edx], al
add byte [ecx], 1
add bl, al
int3
push eax
out dx, al
jp 0x20b01a00
aam 0x24
and eax, 0x21ce76f6
dec ebp
sub dl, byte [esi + 0x4e]
retf 0xb79c
les ebp, [eax - 0x369c2af8]
invalid