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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, edx
mov dword [ebp - 0xc], 0
push edi
mov edi, ecx
test esi, esi
jne 0x10d086
call fcn.000ee7f0
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x10d067
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push 0x1964d8
mov dword [esi], 0x8000006
call fcn.000ee5f0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
cmp ecx, dword [edi + 0x24]
ja 0x10d0fa
jb 0x10d098
cmp ebx, dword [edi + 0x20]
jae 0x10d0fa
call fcn.000ee7f0
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x10d0d7
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push dword [ebp + 0xc]
mov dword [esi], 0x8000006
push ebx
push 0x1964f4
call fcn.000ee5f0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
add edx, 0xffffffff
adc eax, 0xffffffff
cmp ecx, eax
jb 0x10d13c
ja 0x10d110
cmp ebx, edx
jbe 0x10d13c
call fcn.000ee7f0
mov ecx, 0x8000006
call fcn.000ee550
push dword [ebp + 0xc]
push ebx
push 0x196524
call fcn.000ee5f0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x1aa220], 0
je 0x10d162
push ecx
push ebx
push 0x196554
push 2
call fcn.00158e14
add esp, 4
push eax
call fcn.000f0dc0
mov ecx, dword [ebp + 0xc]
add esp, 0x10
mov eax, dword [edi + 0x124]
test eax, eax
jne 0x10d21d
test ecx, ecx
jne 0x10d1f1
cmp ebx, 0x10
ja 0x10d1f1
push ecx
push ebx
push ecx
push dword [edi + 0x130]
call fcn.00171bf0
mov ebx, eax
mov ecx, edx
add ebx, dword [edi + 0x138]
adc ecx, dword [edi + 0x13c]
mov dword [ebp - 8], ecx
push dword [edi + 0x130]
mov edx, esi
push ecx
push ebx
mov ecx, edi
call fcn.00135350
mov ecx, eax
add esp, 0xc
mov eax, dword [edi + 0x130]
mov dword [ebp - 0x18], eax
cmp ecx, eax
je 0x10d4c7
test ecx, ecx
js 0x10d1d4
call fcn.000ee7f0
mov ecx, 0x8000004
call fcn.000ee550
push dword [ebp - 8]
push ebx
push 0x196778
call fcn.000ee650
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.000ee7f0
mov ecx, 0x8000006
call fcn.000ee550
push dword [ebp + 0xc]
push ebx
push 0x196580
call fcn.000ee5f0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
push ebx
push 0
push dword [edi + 0x130]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
call fcn.00171bf0
mov ebx, dword [edi + 0x124]
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
mov ebx, dword [ebx + 0x28]
test ebx, ebx
je 0x10d28e
nop word [eax + eax]
push 0
push dword [edi + 0x128]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
call fcn.00171bf0
mov ecx, eax
mov eax, edx
mov edx, dword [ebp - 8]
cmp edx, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
jl 0x10d2f2
jg 0x10d27d
cmp eax, ecx
jb 0x10d2f2
mov ebx, dword [ebx]
sub eax, ecx
mov dword [ebp - 4], eax
sbb edx, dword [ebp - 0x14]
mov dword [ebp - 8], edx
test ebx, ebx
jne 0x10d250
call fcn.000ee7f0
mov edi, dword [0x1aa224]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x10d2cd
push 0xc08
call fcn.0015c8ae
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.00153d90
add esp, 0xc
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push dword [ebp + 0xc]
mov dword [esi], 0x8000008
push dword [ebp + 8]
push 0x1966c4
call fcn.000ee5f0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x1aa220], 0
je 0x10d324
push edx
push eax
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push 0x1965d8
push 2
call fcn.00158e14
add esp, 4
push eax
call fcn.000f0dc0
mov edx, dword [ebp - 8]
add esp, 0x20
mov ecx, dword [edi + 0x130]
xor eax, eax
add ecx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x18]
adc eax, edx
cmp dword [ebp - 0x14], eax
jg 0x10d3b6
jl 0x10d343
cmp ecx, dword [ebp - 0x10]
jae 0x10d3b6
cmp dword [0x1aa220], 0
je 0x10d364
push 0x196620
push 2
call fcn.00158e14
add esp, 4
push eax
call fcn.000f0dc0
add esp, 8
mov eax, dword [ebx]
test eax, eax
jne 0x10d392
call fcn.000ee7f0
mov ecx, 0x8000009
call fcn.000ee550
push 0x196650
call fcn.000ee5f0
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push dword [edi + 0x128]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00171bf0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 4]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
jmp 0x10d3c2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
push 0
push dword [edi + 0x128]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
call fcn.00171bf0
mov ebx, eax
mov ecx, edx
add ebx, dword [ebp - 4]
adc ecx, dword [ebp - 8]
cmp dword [0x1aa220], 0
mov dword [ebp - 8], ecx
je 0x10d408
push ecx
push ebx
push 0x196698
push 2
call fcn.00158e14
add esp, 4
push eax
call fcn.000f0dc0
mov ecx, dword [ebp - 8]
add esp, 0x10
mov eax, ebx
or eax, ecx
je 0x10d28e
mov eax, dword [ebp - 0x14]
or eax, dword [ebp - 0x10]
je 0x10d19a
push dword [ebp - 0xc]
mov edx, esi
push ecx
push ebx
mov ecx, edi
call fcn.00135350
mov ecx, dword [ebp - 0xc]
add esp, 0xc
cmp eax, ecx
je 0x10d466
test eax, eax
js 0x10d449
call fcn.000ee7f0
mov ecx, 0x8000004
call fcn.000ee550
push dword [ebp - 8]
push ebx
push 0x1966f8
call fcn.000ee650
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x130]
lea edx, [ecx + esi]
mov ebx, dword [ebp - 0x14]
sub eax, ecx
push eax
push dword [ebp - 0x10]
mov ecx, edi
push ebx
call fcn.00135350
mov edx, eax
add esp, 0xc
mov eax, dword [edi + 0x130]
mov ecx, eax
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
cmp edx, ecx
je 0x10d4c7
test edx, edx
js 0x10d4aa
call fcn.000ee7f0
mov ecx, 0x8000004
call fcn.000ee550
push dword [ebp - 0x10]
push ebx
push 0x196738
call fcn.000ee650
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [edi + 0x98]
movzx ecx, byte [esi + 7]
movzx edx, byte [esi + 6]
cmp ebx, 1
jne 0x10d4e3
mov eax, ecx
shl eax, 8
add eax, edx
jmp 0x10d4ea
mov eax, edx
shl eax, 8
add eax, ecx
test ax, ax
je 0x10d540
cmp ebx, 1
jne 0x10d4fc
shl ecx, 8
lea eax, [ecx + edx]
jmp 0x10d502
shl edx, 8
lea eax, [edx + ecx]
movzx ecx, ax
movzx eax, word [edi + 0x12c]
dec ecx
imul ecx, eax
cmp ecx, dword [edi + 0x130]
jbe 0x10d540
call fcn.000ee7f0
mov ecx, 0x8000009
call fcn.000ee550
push 0x1967ac
call fcn.000ee5f0
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 4]
cmp ebx, 1
jne 0x10d556
mov eax, ecx
shl eax, 8
add eax, edx
jmp 0x10d55d
mov eax, edx
shl eax, 8
add eax, ecx
movzx eax, ax
cmp eax, dword [ebp - 0x18]
jbe 0x10d58d
call fcn.000ee7f0
mov ecx, 0x8000009
call fcn.000ee550
push 0x1967e8
call fcn.000ee5f0
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jne 0x10d597
shl ecx, 8
jmp 0x10d59a
shl edx, 8
add ecx, edx
movzx edx, cx
add edx, esi
mov dword [ebp - 0x14], edx
cmp ebx, 1
jne 0x10d5c0
movzx ecx, byte [edx + 1]
lea eax, [edx + 1]
mov dword [ebp - 0x18], eax
mov eax, 0x100
imul ecx, eax
movzx eax, byte [edx]
jmp 0x10d5d4
movzx ecx, byte [edx]
lea ebx, [edx + 1]
mov eax, 0x100
mov dword [ebp - 0x18], ebx
imul ecx, eax
movzx eax, byte [ebx]
add cx, ax
mov ebx, 1
movzx eax, cx
mov dword [ebp - 0x10], eax
mov edx, dword [edi + 0x98]
cmp edx, 1
jne 0x10d5f7
movzx ecx, byte [esi + 7]
movzx eax, byte [esi + 6]
jmp 0x10d5ff
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 7]
shl ecx, 8
add eax, ecx
movzx eax, ax
cmp ebx, eax
jge 0x10d6f6
movzx eax, word [edi + 0x12c]
imul eax, ebx
sub eax, 2
cmp edx, 1
jne 0x10d63c
movzx ecx, byte [eax + esi + 1]
lea edx, [eax + esi]
mov eax, 0x100
imul ecx, eax
movzx eax, byte [edx]
add cx, ax
movzx eax, cx
jmp 0x10d65b
movzx edx, byte [eax + esi + 1]
lea ecx, [eax + esi]
mov dword [ebp - 8], ecx
mov eax, 0x100
movzx ecx, byte [ecx]
imul ecx, eax
add dx, cx
movzx eax, dx
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], eax
cmp ax, word [ebp - 0x10]
jne 0x10d67d
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ebx*2]
mov byte [edx], al
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + ebx*2]
inc ebx
mov byte [edx + 1], al
jmp 0x10d5e2
cmp dword [edi + 0x98], 1
jne 0x10d6a2
mov edx, dword [ebp - 0x14]
mov eax, 0x100
movzx ecx, byte [edx + ebx*2 + 1]
imul ecx, eax
movzx eax, byte [edx + ebx*2]
add cx, ax
movzx esi, cx
jmp 0x10d6bc
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + ebx*2 + 1]
movzx ecx, byte [eax + ebx*2]
mov eax, 0x100
imul ecx, eax
add dx, cx
movzx esi, dx
call fcn.000ee7f0
mov ecx, 0x800000f
call fcn.000ee550
movzx eax, si
push eax
mov eax, dword [ebp - 0xc]
movzx eax, ax
push eax
mov eax, dword [ebp - 0x10]
movzx eax, ax
push eax
push 0x196828
call fcn.000ee5f0
add esp, 0x10
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret