Function at 0x660df7cd
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push dword [0x6610feb0]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x660df869
cmp dword [eax + 0x24], 0
je 0x660df869
mov eax, dword [ebp + 8]
sub eax, 0x8dad
je 0x660df862
dec eax
je 0x660df85b
dec eax
je 0x660df854
dec eax
je 0x660df84d
dec eax
je 0x660df846
dec eax
je 0x660df83f
dec eax
je 0x660df817
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 [0x6610f6d0]
call dword [sym.imp.USER32.dll_LoadStringA]
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
jmp 0x660df810
mov eax, 0x138b
jmp 0x660df81c
mov eax, 0x138a
jmp 0x660df81c
mov eax, 0x1389
jmp 0x660df81c
mov eax, 0x138e
jmp 0x660df81c
mov eax, 0x138d
jmp 0x660df81c
mov eax, 0x138c
jmp 0x660df81c
mov eax, 0x66110de8
mov ecx, 0x66110fe4
movzx edx, word [eax + 2]
cmp edx, dword [ebp + 8]
je 0x660df883
add eax, 4
cmp eax, ecx
jb 0x660df873
cmp eax, ecx
jb 0x660df911
mov eax, 0x2738
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [0x6610f688]
call dword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
je 0x660dfa07
push 0x660553cc
push dword [ebp + 0x10]
call fcn.660e3420
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
je 0x660dfa11
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 0x660dfa11
mov esi, dword [ebp + 8]
test esi, esi
jne 0x660df919
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.660113db
add esp, 0xc
push 0x660553cc
push ebx
call fcn.660e3420
pop ecx
mov ebx, eax
pop ecx
jmp 0x660df8d8
movzx eax, word [eax]
jmp 0x660df890
cmp esi, 1
jne 0x660df928
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov byte [ebx], al
inc ebx
jmp 0x660df900
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 0x660df9cc
push ecx
call fcn.6600fdd3
mov esi, eax
test esi, esi
mov dword [ebp - 4], esi
je 0x660dfa07
push dword [ebp + 0x10]
push esi
call fcn.660e34a8
pop ecx
pop ecx
push 0x660553cc
push esi
call fcn.660e3420
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.660113db
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.660e32d2
and byte [esi + edi - 1], 0
add esp, 0xc
push dword [ebp - 4]
call fcn.660177d3
mov ebx, edi
jmp 0x660df900
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.660113db
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 0x660df900
mov eax, 0x8007000e
jmp 0x660df810
xor eax, eax
jmp 0x660df810