Function at 0x660de31a
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push dword [0x6610ee98]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x660de3b6
cmp dword [eax + 0x24], 0
je 0x660de3b6
mov eax, dword [ebp + 8]
sub eax, 0x8dad
je 0x660de3af
dec eax
je 0x660de3a8
dec eax
je 0x660de3a1
dec eax
je 0x660de39a
dec eax
je 0x660de393
dec eax
je 0x660de38c
dec eax
je 0x660de364
mov eax, 0x800a0033
pop edi
pop esi
pop ebx
leave
ret 0x10
mov eax, 0x1388
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [0x6610e6d0]
call dword [sym.imp.USER32.dll_LoadStringA]
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
jmp 0x660de35d
mov eax, 0x138b
jmp 0x660de369
mov eax, 0x138a
jmp 0x660de369
mov eax, 0x1389
jmp 0x660de369
mov eax, 0x138e
jmp 0x660de369
mov eax, 0x138d
jmp 0x660de369
mov eax, 0x138c
jmp 0x660de369
mov eax, 0x6610fdb0
mov ecx, 0x6610ffac
movzx edx, word [eax + 2]
cmp edx, dword [ebp + 8]
je 0x660de3d0
add eax, 4
cmp eax, ecx
jb 0x660de3c0
cmp eax, ecx
jb 0x660de45e
mov eax, 0x2738
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [0x6610e688]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x660de554
push 0x660555b4
push dword [ebp + 0x10]
call fcn.660e1f51
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x660de55e
mov edi, dword [ebp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp + 8], ecx
dec ecx
mov dword [ebp - 8], ecx
test ebx, ebx
je 0x660de55e
mov esi, dword [ebp + 8]
test esi, esi
jne 0x660de466
lea edx, [ebx + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
push ebx
call fcn.660112fa
add esp, 0xc
push 0x660555b4
push ebx
call fcn.660e1f51
pop ecx
mov ebx, eax
pop ecx
jmp 0x660de425
movzx eax, word [eax]
jmp 0x660de3dd
cmp esi, 1
jne 0x660de475
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [ebx], al
inc ebx
jmp 0x660de44d
mov edi, dword [ebp + 0x10]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea ecx, [ecx + esi - 1]
cmp ecx, dword [ebp + 0x14]
jbe 0x660de519
push ecx
call fcn.6600fd50
mov esi, eax
test esi, esi
mov dword [ebp - 4], esi
je 0x660de554
push dword [ebp + 0x10]
push esi
call fcn.660e1fd9
pop ecx
pop ecx
push 0x660555b4
push esi
call fcn.660e1f51
mov ebx, eax
pop ecx
pop ecx
xor eax, eax
lea edx, [ebx + 1]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 8]
not ecx
push ecx
push edx
add edx, eax
push edx
call fcn.660112fa
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 0xc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
lea eax, [esi - 1]
push eax
push dword [ebp - 4]
push edi
call fcn.660e1e03
and byte [esi + edi - 1], 0
add esp, 0xc
push dword [ebp - 4]
call fcn.660175eb
mov ebx, edi
jmp 0x660de44d
lea edx, [ebx + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebp - 8]
not ecx
push ecx
push edx
add edx, eax
push edx
call fcn.660112fa
mov ecx, esi
mov esi, dword [ebp + 0xc]
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 0xc
and ecx, 3
add ebx, dword [ebp + 8]
rep movsb byte es:[edi], byte [esi]
jmp 0x660de44d
mov eax, 0x8007000e
jmp 0x660de35d
xor eax, eax
jmp 0x660de35d