Function at 0x1015fb10
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push edi
mov edi, dword [ebp + 0x10]
or ecx, 0xffffffff
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], ecx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], ecx
mov dword [esi + 0x88], ecx
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], ecx
xor edx, edx
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], ecx
mov dword [ebp - 4], edx
lea ebx, [edx + 0xf]
mov dword [ebp - 0x14], edx
mov dword [ebp - 8], edx
cmp dword [edi + 8], edx
jbe 0x1015fbe5
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + edx*4]
mov dword [esi + edx*4], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ecx + 0x64]
mov eax, 1
shl eax, cl
inc edx
not eax
and ebx, eax
cmp edx, dword [edi + 8]
jb 0x1015fbc2
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 0xc]
cmp edx, dword [ecx + 0xc]
jae 0x1015fe43
jmp 0x1015fbf6
mov ebx, dword [ebp - 0x1c]
xor edi, edi
jmp 0x1015fc00
mov edx, 1
mov ecx, edi
shl edx, cl
test ebx, edx
jne 0x1015fc13
inc edi
cmp edi, 4
jb 0x1015fc00
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x60]
mov dword [ebp - 0x18], edx
not eax
and ebx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x8040]
mov eax, dword [0x101e316c]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ecx
test eax, eax
jge 0x1015fc45
xor eax, eax
jmp 0x1015fc4c
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x1015fc73
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x1015fc5d
mov ebx, ecx
jmp 0x1015fc84
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x1015fc69
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov ebx, ecx
jmp 0x1015fc84
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov ebx, eax
xor ecx, ecx
cmp ebx, ecx
je 0x1015fce1
mov edx, dword [ebp - 0x18]
or eax, 0xffffffff
push edi
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0x10]
push edx
push eax
mov eax, ebx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 0x94], ecx
mov dword [ebx + 0x98], ecx
mov dword [ebx + 0x24], ecx
call fcn.10165570
mov dword [ebp - 4], eax
test eax, eax
jl 0x1015fceb
mov edi, dword [ebp + 8]
push 0
call fcn.10169830
mov dword [ebp - 4], eax
test eax, eax
jl 0x1015fceb
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], 0
mov dword [esi + ecx*4], ebx
jmp 0x1015fe20
mov eax, 0x8007000e
jmp 0x1015fe25
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x1015fd1d
cmp ecx, 0xffffffff
je 0x1015fd1d
mov eax, dword [ebx + 4]
test eax, eax
je 0x1015fd04
mov edx, dword [ebx]
mov dword [eax], edx
jmp 0x1015fd09
mov eax, dword [ebx]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx]
test eax, eax
je 0x1015fd17
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
jmp 0x1015fd1d
mov edx, dword [ebx + 4]
mov dword [ecx + 0x28], edx
mov edi, dword [ebx + 0x94]
test edi, edi
je 0x1015fd7a
cmp byte [edi + 0xc], 0
mov dword [edi + 8], 0
je 0x1015fd64
mov ecx, dword [edi]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1015fd60
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1015fd4a
xor eax, eax
jmp 0x1015fd54
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edi, dword [ebx + 0x98]
xor eax, eax
mov dword [ebx + 0x94], eax
cmp edi, eax
je 0x1015fdd9
mov dword [edi + 8], eax
cmp byte [edi + 0xc], al
je 0x1015fdc1
mov ecx, dword [edi]
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x1015fdbd
mov ecx, dword [0x101e316c]
cmp ecx, eax
jl 0x1015fdae
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [ebp - 0x18]
mov edx, dword [eax]
push ecx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebx + 0x98], eax
mov ecx, dword [0x101e316c]
cmp ecx, eax
jge 0x1015fded
xor edi, edi
jmp 0x1015fdf6
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push pe_nt_image_headers32
push 0xfe
push ebx
call sub.msvcrt.dll_memset
mov dword [ebx], 0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x1015fe1a
mov dword [eax], ebx
jmp 0x1015fe1d
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, ecx
mov dword [ebp - 4], eax
jl 0x101600ed
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [ecx + 0xc]
jb 0x1015fbf3
mov edx, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [edx + 4], eax
jbe 0x101600ed
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
add ecx, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov edx, dword [ecx + 0x24]
mov ebx, dword [edi + 0x8040]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], ebx
test eax, eax
je 0x1015fec2
mov edx, eax
sub edx, 1
je 0x1015fe91
sub edx, 1
jne 0x101600f8
mov ebx, dword [edi + 0x8080]
jmp 0x1015fe97
mov ebx, dword [edi + 0x8054]
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], 0
test edx, edx
je 0x1015feba
mov edi, dword [edx + 0x60]
cmp edi, dword [ebp - 8]
jb 0x1015feb4
inc edi
mov dword [ebp - 8], edi
mov edx, dword [edx]
test edx, edx
jne 0x1015fea8
mov edx, dword [ebp - 8]
mov dword [ebp - 0x10], edx
jmp 0x1015fecc
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x10], edx
inc edx
mov dword [ebx + 0x10], edx
cmp dword [ebp - 0x18], 0x40
je 0x1016004b
mov ecx, dword [ecx + 4]
cmp ecx, 0xf0000000
jb 0x1015feee
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + ecx*4 + 0x40000000]
mov ecx, dword [ecx + 0x3c]
and ecx, 0xfff00000
cmp ecx, 0x21700000
ja 0x1015ffce
je 0x1015fff7
cmp ecx, 0x21500000
ja 0x1015ffc3
je 0x1015fff7
cmp ecx, 0x12100000
je 0x1015fff7
cmp ecx, 0x21400000
je 0x1015fff7
cmp ecx, 0x21e00000
ja 0x10160016
je 0x1016003f
cmp ecx, 0x21900000
ja 0x10160003
je 0x1016003f
cmp ecx, 0x12200000
je 0x1016003f
cmp ecx, 0x21800000
je 0x1016003f
mov dword [ebp - 8], 4
mov edx, dword [ebp + 0x10]
xor edi, edi
cmp dword [edx + 8], edi
jbe 0x101600d6
mov ebx, dword [ebp - 0x18]
add ebx, 0xffffffc0
shl ebx, 4
add ebx, esi
lea esp, [esp]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push eax
mov eax, dword [ebp + 8]
push edi
push ecx
push edx
push ebx
push eax
call fcn.10169c20
mov dword [ebp - 4], eax
test eax, eax
jl 0x101600ed
mov ecx, dword [ebp + 0x10]
inc edi
add ebx, 4
cmp edi, dword [ecx + 8]
jb 0x1015ff90
jmp 0x101600d6
cmp ecx, 0x21600000
jmp 0x1015ff2a
cmp ecx, 0x22400000
ja 0x1015ffeb
je 0x1015fff7
cmp ecx, 0x21b00000
je 0x1015fff7
cmp ecx, 0x21c00000
jmp 0x1015ff2a
cmp ecx, 0x22500000
jne 0x1015ff30
mov dword [ebp - 8], 0xb
jmp 0x1015ff73
cmp ecx, 0x21a00000
je 0x1016003f
cmp ecx, 0x21d00000
jmp 0x1015ff66
cmp ecx, 0x22300000
ja 0x10160033
je 0x1016003f
cmp ecx, 0x22100000
je 0x1016003f
cmp ecx, 0x22200000
jmp 0x1015ff66
cmp ecx, 0x22600000
jne 0x1015ff6c
mov dword [ebp - 8], 0xc
jmp 0x1015ff73
test eax, eax
je 0x101600d6
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [edx + 8], eax
jbe 0x101600d6
mov ecx, dword [esi + eax*4]
mov edx, dword [ecx + 0x50]
cmp edx, ebx
je 0x101600c1
test edx, edx
je 0x1016009c
cmp edx, 0xffffffff
je 0x1016009c
mov edi, dword [ecx + 4]
test edi, edi
je 0x10160083
mov eax, dword [ecx]
mov dword [edi], eax
mov eax, dword [ebp - 0x18]
jmp 0x10160088
mov edi, dword [ecx]
mov dword [edx + 0x24], edi
mov edi, dword [ecx]
test edi, edi
je 0x10160096
mov edx, dword [ecx + 4]
mov dword [edi + 4], edx
jmp 0x1016009c
mov edi, dword [ecx + 4]
mov dword [edx + 0x28], edi
cmp ebx, 0xffffffff
je 0x101600be
mov edx, dword [ebx + 0x28]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x101600b2
mov dword [edx], ecx
jmp 0x101600b5
mov dword [ebx + 0x24], ecx
mov dword [ecx], 0
mov dword [ebx + 0x28], ecx
mov dword [ecx + 0x50], ebx
mov ecx, dword [esi + eax*4]
mov edx, dword [ebp - 0x10]
mov dword [ecx + 0x60], edx
mov ecx, dword [ebp + 0x10]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ecx + 8]
jb 0x10160060
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 0xc]
add dword [ebp - 0x14], 0x60
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [edx + 4]
jb 0x1015fe57
mov eax, dword [ebp - 4]
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
mov eax, 0x8007003f
pop ebx
mov esp, ebp
pop ebp
ret 0x10