Function at 0x100d5360
Capabilities:
Set thread local storage value

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
call fcn.10143a40
mov ebp, dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov edi, eax
test edi, edi
je 0x100d5393
mov ecx, edi
nop dword [eax + eax]
cmp dword [ecx + 8], 0x100d5270
je 0x100d5432
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100d5380
push 0x10
call fcn.101b37dc
add esp, 4
mov esi, eax
push esi
push dword [0x1026b48c]
mov dword [esi], edi
call ebp
push 4
call fcn.101b37dc
add esp, 4
mov dword [esi + 4], eax
mov dword [esi + 8], 0x100d5270
mov dword [esi + 0xc], 0x100d5290
mov ebx, dword [esp + 0x18]
mov dword [eax], ebx
call fcn.10143a40
mov edi, eax
test edi, edi
je 0x100d53ef
mov ecx, edi
nop dword [eax + eax]
cmp dword [ecx + 8], 0x100d52c0
je 0x100d5437
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100d53e0
push 0x10
call fcn.101b37dc
add esp, 4
mov esi, eax
push esi
push dword [0x1026b48c]
mov dword [esi], edi
call ebp
push 0x800
call fcn.101b380c
mov edi, eax
mov dword [esi + 8], 0x100d52c0
add esp, 4
mov dword [esi + 4], edi
mov dword [esi + 0xc], 0x100d52d0
cmp ebx, 6
ja case.default.0x100d542b
jmp dword [ebx*4 + 0x100d55a4]
mov eax, dword [ecx + 4]
jmp 0x100d53c5
mov edi, dword [ecx + 4]
jmp 0x100d5426
mov eax, str.No_Error
jmp 0x100d5472
mov eax, str.Invalid_Argument
jmp 0x100d5472
mov eax, str.Invalid_Operation
jmp 0x100d5472
mov eax, str.Invalid_Handle
jmp 0x100d5472
mov eax, str.Invalid_Paint
jmp 0x100d5472
mov eax, str.Out_Of_Memory
jmp 0x100d5472
mov eax, str.Parse_Error
jmp 0x100d5472
mov eax, str.Unknown_error
push eax
push str._s:
push edi
call fcn.10087350
mov ecx, edi
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d5486
sub ecx, edx
mov esi, edi
mov edx, 0x800
sub edx, ecx
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x100d54a0
sub esi, ecx
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x20]
lea ecx, [esi + edi]
call fcn.100d5230
add esp, 8
call fcn.10143a40
mov edi, eax
test edi, edi
je 0x100d54e3
mov ecx, edi
nop word [eax + eax]
cmp dword [ecx + 8], 0x100d52a0
je 0x100d558b
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100d54d0
push 0x10
call fcn.101b37dc
add esp, 4
mov esi, eax
push esi
push dword [0x1026b48c]
mov dword [esi], edi
call ebp
push 4
call fcn.101b37dc
add esp, 4
mov dword [eax], 0x100d52e0
mov dword [esi + 4], eax
mov dword [esi + 8], 0x100d52a0
mov dword [esi + 0xc], 0x100d5290
mov ebp, dword [eax]
test ebp, ebp
je 0x100d5585
test ebx, ebx
je 0x100d5585
call fcn.10143a40
mov edi, eax
test edi, edi
je 0x100d5541
mov ecx, edi
cmp dword [ecx + 8], 0x100d5270
je 0x100d5590
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100d5532
push 0x10
call fcn.101b37dc
add esp, 4
mov esi, eax
push esi
push dword [0x1026b48c]
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push 4
call fcn.101b37dc
add esp, 4
mov dword [eax], 0
mov dword [esi + 4], eax
mov dword [esi + 8], 0x100d5270
mov dword [esi + 0xc], 0x100d5290
push dword [eax]
push ebx
call ebp
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov eax, dword [ecx + 4]
jmp 0x100d551b
mov eax, dword [ecx + 4]
push dword [eax]
push ebx
call ebp
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret