Function at 0x703773a0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
mov dword [esi], edi
mov ecx, dword [0x703d29a8]
mov eax, dword [ecx]
mov dword [ebp - 4], 0x8004000a
call dword [eax + 0x20]
test eax, eax
je 0x703773d1
mov eax, 0x80070057
jmp 0x7037760d
call fcn.70376dd6
test eax, eax
je 0x703773fb
push dword [0x703bf6e8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
inc dword [eax + 0x117c]
mov eax, dword [eax + 0x116c]
mov dword [esi], eax
xor eax, eax
jmp 0x7037760d
cmp dword [ebp + 0xc], edi
jne 0x70377413
cmp dword [0x703d2978], edi
je 0x70377413
push 0x703d2960
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x70377460
cmp dword [0x703d2998], edi
je 0x70377433
cmp dword [0x703d294c], edi
jne 0x70377433
xor ecx, ecx
inc ecx
jmp 0x70377435
xor ecx, ecx
cmp eax, 1
je 0x70377456
add eax, 0xfffffffe
cmp eax, 1
ja 0x70377493
cmp dword [0x703c1068], edi
jne 0x70377468
mov dword [ebp - 4], 0x80040020
jmp 0x703775c2
cmp ecx, edi
jne 0x7037744a
mov dword [0x703c1068], edi
cmp dword [0x703c1068], edi
je 0x7037747d
cmp dword [ebp + 0xc], edi
jne 0x7037747d
call fcn.7037779d
cmp eax, edi
mov dword [ebp - 4], eax
jl 0x703775c7
mov eax, dword [ebx + 4]
cmp eax, 2
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], edi
jne 0x7037749f
cmp dword [ebx + 0x10], edi
je 0x7037749f
mov dword [ebp - 4], 0x80070057
jmp 0x703775c2
xor ecx, ecx
dec eax
inc ecx
cmp ecx, eax
mov eax, dword [ebx + 0xc]
sbb esi, esi
neg esi
sub eax, edi
je 0x703774b8
xor ebx, ebx
dec eax
jne 0x703774ca
inc ebx
jmp 0x703774ca
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
neg ebx
sbb ebx, ebx
inc ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x70377559
push eax
call fcn.70376dfb
mov edi, eax
test edi, edi
jne 0x703774f0
mov dword [ebp - 4], 0x80070057
jmp 0x703775a0
and dword [ebp - 0x10], 0
mov ecx, edi
call fcn.70376e24
cmp dword [edi + 0x38], 2
jne 0x70377511
mov dword [ebp - 4], 0x80070057
mov dword [ebp - 0x10], 1
jmp 0x70377529
xor ecx, ecx
lea eax, [edi + 4]
inc ecx
lock xadd dword [eax], ecx
lea eax, [ebp - 0x18]
push eax
push ebx
push esi
push dword [edi + 0x28]
call fcn.70367587
mov ecx, edi
call fcn.70376e5a
cmp dword [ebp - 0x10], 0
jne 0x703775a0
lea eax, [ebp - 8]
push eax
push dword [ebp + 0xc]
call fcn.703786fa
test eax, eax
mov dword [ebp - 4], eax
jl 0x703775a0
cmp dword [ebp + 0xc], 0
je 0x70377573
mov eax, dword [ebp - 8]
mov dword [0x703d294c], eax
jmp 0x70377586
lea eax, [ebp - 0xc]
push eax
push ebx
push esi
push 0
call fcn.70367587
test eax, eax
jge 0x70377536
mov dword [ebp - 4], 0x8007000e
jmp 0x703775a0
push dword [ebp - 8]
mov ecx, 0x703d2998
call fcn.70391f4f
inc dword [0x703d2950]
test edi, edi
jne 0x703775e4
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.70378035
test eax, eax
mov dword [ebp - 4], eax
jge 0x703775df
cmp dword [ebp - 8], 0
je 0x703775b2
push dword [ebp - 8]
call fcn.70377305
and dword [ebp - 8], 0
cmp dword [ebp - 0xc], 0
je 0x703775c0
push dword [ebp - 0xc]
call fcn.70367682
xor edi, edi
cmp dword [ebp + 0xc], edi
jne 0x703775da
cmp dword [0x703d2978], edi
je 0x703775da
push 0x703d2960
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 4]
jmp 0x7037760c
mov edi, dword [ebp - 0x14]
jmp 0x703775eb
mov ecx, edi
call fcn.70377e62
cmp dword [ebp + 0xc], 0
jne 0x70377605
cmp dword [0x703d2978], 0
je 0x70377605
push 0x703d2960
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0x10]
mov dword [eax], edi
xor eax, eax
pop ebx
pop edi
pop esi
leave
ret 0xc