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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe34
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0xe30], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
cmp dword [esi*4 + 0x100fdcb0], 0
je 0x100257b6
cmp dword [esi*4 + 0x100fdcb4], 0
je 0x100257b5
cmp dword [esi*4 + 0x100fdcb8], 0
je 0x100257b0
cmp dword [esi*4 + 0x100fdcbc], 0
je 0x100257ab
add esi, 4
cmp esi, 0x40
jl 0x10025762
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe30]
xor ecx, esp
call fcn.100944ae
mov esp, ebp
pop ebp
ret 4
add esi, 3
jmp 0x100257b6
add esi, 2
jmp 0x100257b6
inc esi
cmp esi, 0x40
jge 0x10025992
cmp edi, 0x100f8570
jne 0x100257ce
mov dword [esi*4 + 0x100fdcb0], edi
cmp dword [edi + 0x10], 0x180
jl 0x100257e0
lea eax, [esi + 0x180]
mov dword [edi + 0x10], eax
test byte [edi + 0x14], 1
jne 0x10025858
cmp dword [edi + 8], 0
je 0x10025858
cmp dword [edi + 0xc], 0
jne 0x10025858
mov eax, dword [edi + 4]
test eax, eax
je 0x10025812
push eax
lea eax, [esp + 0xc34]
push 0x104
push eax
call dword [sym.imp.MSVCR120.dll_wcscpy_s]
add esp, 0xc
jmp 0x1002581c
xor eax, eax
mov word [esp + 0xc30], ax
push 0x104
lea eax, [esp + 0xc34]
push eax
push dword [edi + 8]
call sym.HncFoundation.dll_HncGetResourcePath
test eax, eax
je 0x100258c9
lea eax, [esp + 0xc30]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [edi + 0xc], eax
test eax, eax
jne 0x10025858
mov ecx, dword [edi + 8]
call fcn.10025690
jmp 0x100258c9
mov ebx, dword [edi + 0x18]
mov dword [esi*4 + 0x100fdcb0], edi
test ebx, ebx
je 0x10025888
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x10025888
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x10025883
push 0
push 0
push 0
push eax
push edi
call ecx
cmp eax, 0xffffffff
je 0x100258a4
add ebx, 8
jne 0x10025866
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe30]
xor ecx, esp
call fcn.100944ae
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [edi + 0x18]
test ebx, ebx
je 0x100258c9
jmp 0x100258b0
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x100258c9
push 0
push 0
push 1
push eax
mov eax, dword [ebx + 4]
push edi
call eax
add ebx, 8
jne 0x100258b0
test byte [edi + 0x14], 2
jne 0x1002595d
mov eax, dword [0x100fdddc]
cmp eax, 0xffffffff
jne 0x100258e1
xor ebx, ebx
jmp 0x10025930
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x10025930
push 0x824
call dword [sym.imp.MSVCR120.dll_malloc]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x10025913
push 0x10
push eax
push str.Out_of_memory.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x10025930
push 0x824
push 0
push ebx
call sub.MSVCR120.dll_memset
add esp, 0xc
push ebx
push dword [0x100fdddc]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea edx, [esp + 0x10]
mov ecx, ebx
call fcn.10025ec0
cmp word [esp + 0x81c], 0
je 0x1002595d
push 0x10
push 0x100c0638
lea eax, [esp + 0x824]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
test byte [edi + 0x14], 1
jne 0x10025978
mov eax, dword [edi + 0xc]
test eax, eax
je 0x10025978
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [edi + 0xc], 0
cmp edi, 0x100f8570
je 0x1002598b
mov dword [esi*4 + 0x100fdcb0], 0
or dword [edi + 0x14], 0x80000000
mov ecx, dword [esp + 0xe3c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100944ae
mov esp, ebp
pop ebp
ret 4