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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi + 0x14]
test eax, eax
jle 0x4170c7
cmp dword [0x484964], 0xffffffff
jne 0x416e15
push 0
push 0
push 0x4e
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
call fcn.0040e7e0
add esp, 0x10
mov eax, dword [0x484964]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x416e48
push 0x50
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
add esp, 0x10
test esi, esi
jne 0x416eda
mov ecx, dword [0x484964]
push ecx
call ebx
mov esi, eax
test esi, esi
jne 0x416eda
push 0x2c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x416e80
push eax
push eax
push 0x3c
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
call fcn.0040e7e0
add esp, 0x10
mov edx, dword [0x484964]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x416eab
push 0x3e
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
add esp, 0x10
test esi, esi
jne 0x416eda
push 0x55
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
mov edx, dword [ebp - 4]
add esp, 0x10
lea ecx, [edx + 8]
call fcn.004221b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esi]
test esi, esi
je 0x4170c7
mov eax, dword [edi + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [esi + eax*4 - 4]
test ecx, ecx
ja 0x416f08
push 0
push 0
push 0x11b
push str.C:p_roboform_6_9_9_roboformStringsRfLock.cpp
call fcn.0040e7e0
add esp, 0x10
mov eax, dword [edi + 0x14]
lea ecx, [eax + eax*2]
mov eax, dword [esi + ecx*4 - 4]
cmp eax, 1
lea edi, [esi + ecx*4]
jne 0x417099
lea ecx, [edi - 8]
mov dword [edi - 0xc], 0
call fcn.00436860
mov dword [edi - 4], 0
call fcn.00416590
test eax, eax
jne 0x41702c
mov edx, dword [esi - 4]
lea edi, [esi - 4]
push 0x416dd0
push edx
push 0xc
push esi
call fcn.004244e3
push edi
call fcn.00437120
mov eax, dword [0x484964]
add esp, 4
cmp eax, 0xffffffff
jne 0x416f7b
push 0
push 0
push 0x65
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
call fcn.0040e7e0
add esp, 0x10
mov eax, dword [0x484964]
push eax
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x416fa8
push 0x67
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
add esp, 0x10
test esi, esi
jne 0x417091
mov ecx, dword [0x484964]
push ecx
call ebx
mov esi, eax
test esi, esi
jne 0x417091
push 0x2c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x416fe4
push eax
push eax
push 0x3c
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
call fcn.0040e7e0
add esp, 0x10
mov edx, dword [0x484964]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x41700f
push 0x3e
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
add esp, 0x10
test esi, esi
jne 0x417091
push 0x6c
push str.C:p_roboform_6_9_9_roboformStringsRfTls.h
push 0x4534a4
push 0x453494
call fcn.0040b8a0
add esp, 0x10
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 2
jne 0x4170c7
mov eax, dword [0x4879bc]
test eax, eax
je 0x4170af
push 0x4879d4
lea ecx, [ebp - 8]
call fcn.00436970
mov esi, dword [0x4879bc]
mov ecx, dword [ebp - 8]
push 0x27b
push ecx
lea edx, [esi + 0xb18]
push edx
call fcn.004248a0
add esp, 0xc
lea ecx, [ebp - 8]
mov dword [esi + 0xd94], 0
call fcn.004368f0
mov edx, dword [ebp - 4]
lea ecx, [edx + 8]
call fcn.004221b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi], 0
jmp 0x41702c
mov edx, dword [ebp - 4]
dec eax
mov dword [edi - 4], eax
lea ecx, [edx + 8]
call fcn.004221b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
push str.CRfSingleLock::UnLock___no_shared_data:__s_n
push str.UNSD:__s_n
call fcn.0040b8a0
add esp, 0xc
mov edx, dword [ebp - 4]
lea ecx, [edx + 8]
call fcn.004221b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret