Function at 0x76b15201
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
push edi
mov edi, dword [ebp + 0x10]
push 0xe
push edi
call fcn.76b15039
test eax, eax
je 0x76b1caff
cmp dword [ebp + 0x14], 0
push esi
mov esi, dword [ebp + 0x1c]
jne 0x76b15b7e
push ebx
mov ebx, dword [ebp + 0xc]
cmp ebx, 0xffff
je 0x76b1cb0f
cmp ebx, 0xffffffff
movzx eax, si
je 0x76b15b99
test eax, 0xffff7ff0
jne 0x76b1cb17
cmp word [edi], 1
jne 0x76b1cb1e
mov dword [ebp - 0xc], esi
and dword [ebp - 0xc], 1
je 0x76b15baa
and dword [ebp + 8], 0
call fcn.76b14566
cmp dword [0x76b300ec], 0
je 0x76b15ba3
mov dword [ebp - 8], esi
and dword [ebp - 8], 4
jne 0x76b1cb53
mov eax, ebx
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp + 0xc]
push ecx
push eax
push 0x76b303a0
call fcn.76b150db
test eax, eax
jne 0x76b15ba3
mov edi, dword [ebp + 0xc]
test byte [edi + 0x4c], 2
jne 0x76b152cc
push 0x76b304a0
lea eax, [edi + 0xe8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x76b1cb5b
cmp ebx, 0xffffffff
je 0x76b15bc5
xor esi, esi
cmp dword [ebp - 0xc], esi
je 0x76b15bd4
mov eax, dword [ebp + 0x14]
push dword [0x76b30398]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp ebx, 0xffffffff
mov ebx, dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [ebp + 0x14], eax
je 0x76b1532c
inc eax
push eax
push dword [0x76b30398]
call ebx
test byte [edi + 0x4c], 4
jne 0x76b1cc17
cmp dword [ebp + 0x14], 0
jne 0x76b1cc29
push dword [ebp + 0x1c]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x10]
push eax
push 5
push dword [ebp - 4]
call dword [edi + 0x3c]
push dword [ebp + 0x14]
mov dword [ebp + 0x10], eax
push dword [0x76b30398]
call ebx
test esi, esi
jne 0x76b159a0
mov esi, dword [ebp + 0x10]
push edi
call fcn.76b14fc9
mov eax, esi
pop ebx
pop esi
pop edi
leave
ret 0x18
cmp dword [ebp + 0x10], 0
jne 0x76b159aa
and dword [esi - 0x28], 0xfffffffd
lea eax, [esi - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [ebp + 0x10], 0
jne 0x76b1cc38
push edi
call fcn.76b15009
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov eax, dword [ebp - 0x10]
mov dword [esi + 8], eax
jmp 0x76b1535f
mov eax, esi
shr eax, 0x10
push eax
push dword [ebp + 0x14]
call fcn.76b1540d
test eax, eax
jne 0x76b1522b
jmp 0x76b1cb07
test eax, 0xffff7ff4
jmp 0x76b1524c
push 2
jmp 0x76b1cc43
mov edi, dword [ebp + 8]
push 4
push edi
call fcn.76b12ab0
test eax, eax
je 0x76b1cb4c
and dword [edi], 0
jmp 0x76b1526d
cmp dword [edi + 0x3c], 0
jne 0x76b152d5
jmp 0x76b1cb63
push 0x14
push dword [edi + 0x48]
push 1
call fcn.76b15376
mov esi, eax
test esi, esi
je 0x76b1cc10
lea eax, [esi - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
or dword [esi - 0x28], 2
call fcn.76b14f4b
mov eax, dword [ebp - 4]
and dword [esi + 0x10], 0
mov dword [esi], edi
mov dword [esi + 4], eax
mov dword [esi + 0xc], ebx
jmp 0x76b152e0
push 0xb
pop eax
jmp 0x76b1536c
push 0xb
pop eax
jmp 0x76b1536b
or ebx, 0xffffffff
jmp 0x76b1523b
push 0xa
jmp 0x76b1cc43
push 0x12
push edi
call fcn.76b15039
test eax, eax
je 0x76b1cb4c
mov ax, word [edi + 0x10]
test ax, ax
je 0x76b1525c
movzx eax, ax
push eax
add edi, 0x12
push edi
call fcn.76b15039
test eax, eax
jne 0x76b1525c
push 0xb
jmp 0x76b1cc43
or eax, 0xffffffff
jmp 0x76b1528e
push 6
pop esi
jmp 0x76b15362
push edi
call fcn.76b14fc9
xor ebx, ebx
cmp dword [ebp - 8], ebx
mov dword [ebp + 0x1c], 4
je 0x76b1cbe1
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0xc]
push eax
push 0xffffffffffffffff
push 0x76b303a0
call fcn.76b150db
cmp eax, ebx
mov dword [ebp + 0x1c], eax
jne 0x76b1536a
lea eax, [ebp + 0x1c]
push eax
push ebx
push ebx
push 0x805
push dword [ebp - 4]
push 2
push dword [ebp + 0xc]
call fcn.76b17bb0
test eax, eax
jne 0x76b1cbd1
cmp dword [ebp + 0x1c], ebx
jne 0x76b1cbd1
and esi, 0xfffffffb
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0xffffffffffffffff
push dword [ebp + 8]
call sym.WINMM.dll_waveOutOpen
mov dword [ebp + 0x1c], eax
push dword [ebp + 0xc]
call fcn.76b14fc9
mov eax, dword [ebp + 0x1c]
jmp 0x76b1536a
xor edi, edi
cmp dword [0x76b300ec], ebx
jbe 0x76b1cbd9
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call sym.WINMM.dll_waveOutOpen
cmp eax, ebx
mov dword [ebp + 0x1c], eax
je 0x76b1cbd9
inc edi
cmp edi, dword [0x76b300ec]
jae 0x76b1cbd9
jmp 0x76b1cbeb
push 7
jmp 0x76b1cb5d
mov eax, dword [ebp + 0x14]
inc eax
push eax
push dword [0x76b30398]
call ebx
jmp 0x76b1532c
mov dword [0x76b30f98], 1
jmp 0x76b15336
push esi
call fcn.76b1515b
jmp 0x76b1535f
pop eax
jmp 0x76b1536a