Function at 0x425cb0
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 0x425f97
cmp dword [0x49bebc], 0xffffffff
jne 0x425ce5
push 0
push 0
push 0x4e
push 0x4919cc
call fcn.0041f390
add esp, 0x10
mov eax, dword [0x49bebc]
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 0x425d18
push 0x50
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
add esp, 0x10
test esi, esi
jne 0x425daa
mov ecx, dword [0x49bebc]
push ecx
call ebx
mov esi, eax
test esi, esi
jne 0x425daa
push 0x2c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x425d50
push eax
push eax
push 0x3c
push 0x4919cc
call fcn.0041f390
add esp, 0x10
mov edx, dword [0x49bebc]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x425d7b
push 0x3e
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
add esp, 0x10
test esi, esi
jne 0x425daa
push 0x55
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
mov edx, dword [ebp - 4]
add esp, 0x10
lea ecx, [edx + 8]
call fcn.0042f510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esi]
test esi, esi
je 0x425f97
mov eax, dword [edi + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [esi + eax*4 - 4]
test ecx, ecx
ja 0x425dd8
push 0
push 0
push 0x11b
push 0x495c14
call fcn.0041f390
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 0x425f69
lea ecx, [edi - 8]
mov dword [edi - 0xc], 0
call fcn.004441d0
mov dword [edi - 4], 0
call fcn.00425470
test eax, eax
jne 0x425efc
mov edx, dword [esi - 4]
lea edi, [esi - 4]
push 0x42a3c0
push edx
push 0xc
push esi
call 0x4310d2
push edi
call fcn.00444ab0
mov eax, dword [0x49bebc]
add esp, 4
cmp eax, 0xffffffff
jne 0x425e4b
push 0
push 0
push 0x65
push 0x4919cc
call fcn.0041f390
add esp, 0x10
mov eax, dword [0x49bebc]
push eax
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x425e78
push 0x67
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
add esp, 0x10
test esi, esi
jne 0x425f61
mov ecx, dword [0x49bebc]
push ecx
call ebx
mov esi, eax
test esi, esi
jne 0x425f61
push 0x2c
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x425eb4
push eax
push eax
push 0x3c
push 0x4919cc
call fcn.0041f390
add esp, 0x10
mov edx, dword [0x49bebc]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x425edf
push 0x3e
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
add esp, 0x10
test esi, esi
jne 0x425f61
push 0x6c
push 0x4919cc
push 0x4919b0
push 0x4919a0
call fcn.00423ce0
add esp, 0x10
mov eax, dword [ebp - 4]
cmp dword [eax + 0x14], 2
jne 0x425f97
mov eax, dword [0x49fa4c]
test eax, eax
je 0x425f7f
push 0x49cb58
lea ecx, [ebp - 8]
call fcn.004442e0
mov esi, dword [0x49fa4c]
mov ecx, dword [ebp - 8]
push 0x27b
push ecx
lea edx, [esi + 0xb18]
push edx
call 0x431d20
add esp, 0xc
lea ecx, [ebp - 8]
mov dword [esi + 0xd94], 0
call fcn.00444260
mov edx, dword [ebp - 4]
lea ecx, [edx + 8]
call fcn.0042f510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi], 0
jmp 0x425efc
mov edx, dword [ebp - 4]
dec eax
mov dword [edi - 4], eax
lea ecx, [edx + 8]
call fcn.0042f510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
push 0x495c44
push 0x495c70
call fcn.00423ce0
add esp, 0xc
mov edx, dword [ebp - 4]
lea ecx, [edx + 8]
call fcn.0042f510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret