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

Disassembly:
sub esp, 0x58
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [esp + 0x50]
mov ecx, 6
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], eax
xor eax, eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
lea edx, [esp + 0x18]
push eax
mov dword [esp + 0x18], ecx
push edx
lea ecx, [esp + 0x58]
push 0xffffffffffffffff
mov dword [esp + 0x24], 0x18
mov dword [esp + 0x28], 2
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x1002002f
mov dword [esp + 0x30], 0x18
cmp byte [esp + 0x50], 0x4c
jne 0x1002002a
cmp byte [esp + 0x51], 0x45
jne 0x1001fb1d
cmp byte [esp + 0x52], 0x41
jne 0x1001fb1d
cmp byte [esp + 0x53], 0x44
je 0x1001fb49
cmp byte [esp + 0x50], 0x4c
jne 0x1002002a
cmp byte [esp + 0x51], 0x65
jne 0x1002002a
cmp byte [esp + 0x52], 0x61
jne 0x1002002a
cmp byte [esp + 0x53], 0x64
jne 0x1002002a
cmp byte [esp + 0x51], 0x65
jne 0x1001fbad
lea eax, [esp + 0x38]
xor esi, esi
mov dword [esp + 0x34], 1
mov dword [eax], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x16
lea ecx, [esp + 0x1c]
mov dword [eax + 4], esi
lea edx, [esp + 0x18]
push ecx
push edx
mov dword [eax + 8], esi
push 0xffffffffffffffff
mov dword [eax + 0xc], esi
mov dword [esp + 0x28], 2
mov dword [eax + 0x10], esi
mov word [eax + 0x14], si
lea eax, [esp + 0x44]
push eax
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x1002002f
mov dword [esp + 0x30], 0x2e
mov al, byte [esp + 0x56]
xor ecx, ecx
and al, 0x70
mov cl, al
cmp ecx, 0x60
ja case.0x1001fbc4.4
xor eax, eax
mov al, byte [ecx + 0x1002004c]
jmp dword [eax*4 + 0x10020038]
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x18], 1
mov dword [esi + 0xa0], 2
mov dword [esi + 0xe4], 3
jmp 0x1001fc4e
mov esi, dword [esp + 0x6c]
mov eax, 3
mov dword [esi + 0x18], eax
mov dword [esi + 0xe4], eax
mov dword [esi + 0xa0], 2
jmp 0x1001fc4e
mov esi, dword [esp + 0x6c]
mov eax, 2
mov dword [esi + 0x18], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0xe4], 3
jmp 0x1001fc4e
mov esi, dword [esp + 0x6c]
xor eax, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0xa0], eax
mov dword [esi + 0xe4], 1
cmp byte [esp + 0x64], 1
jne 0x1001fc62
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret
mov al, byte [esi + 0xe4]
mov ecx, dword [esp + 0x20]
push 0x20
mov byte [ecx + 0x4a4], al
mov eax, dword [esi + 0x18]
mov edx, eax
lea ecx, [eax + eax*4]
lea eax, [ecx + ecx*8]
lea ecx, [esi + 0x1c]
sub eax, edx
add eax, dword [esp + 0x24]
add eax, 0x5a18
push eax
push ecx
call fcn.1000eef0
add esp, 0xc
mov ecx, dword [esi + 0xa0]
push 0x20
lea edx, [ecx + ecx*4]
lea ecx, [esi + 0xa4]
lea eax, [edx*8 + 0x1002d0c0]
push eax
push ecx
call fcn.1000eef0
mov eax, dword [esp + 0x6c]
add esp, 0xc
mov dword [esi + 0x14], 0
and eax, 0xffff
mov dword [esi], eax
xor eax, eax
mov ax, word [esp + 0x62]
mov ecx, dword [esp + 0x20]
add ecx, 0x18c
mov edx, dword [esp + 0x20]
add edx, 0x188
mov dword [esi + 4], eax
xor eax, eax
mov dword [esp + 0x28], ecx
mov ax, word [esp + 0x66]
mov ecx, dword [esp + 0x20]
add ecx, 0x184
mov dword [esi + 0xc4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
push eax
push edx
mov eax, dword [esi + 0x18]
push ecx
push eax
call fcn.10012f00
add esp, 0x10
test eax, eax
jne 0x1002002f
lea edi, [esi + 0x3c]
xor ebp, ebp
mov ebx, dword [esp + 0x20]
add ebx, 0x190
mov eax, dword [esp + 0x2c]
mov dword [edi], ebx
mov ecx, dword [eax]
mov eax, dword [ecx + ebp]
test eax, eax
je 0x1001fd81
push ebx
mov ecx, dword [esi + 0xc4]
push ecx
add edi, 4
push eax
add ebp, 4
add ebx, 0x100
call fcn.10012f50
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp ebp, 0xc
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + ebp - 4]
mov dword [edi + 0x1c], edx
mov ecx, dword [eax]
mov edx, dword [ecx + ebp - 4]
mov dword [edi + 0xc], edx
jl 0x1001fd36
test byte [esp + 0x55], 0x10
je 0x1001feeb
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
push ecx
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
or dword [esi + 0xe8], 0x80
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], 2
push edx
push 0xffffffffffffffff
push eax
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x1002002f
cmp byte [esp + 0x12], 8
mov edi, 3
jne 0x1001fde0
mov edi, 0x303
mov al, byte [esp + 0x12]
xor ecx, ecx
shr al, 3
mov cl, al
xor eax, eax
mov al, byte [esp + 0x11]
imul ecx, eax
xor eax, eax
mov al, byte [esp + 0x10]
imul ecx, eax
add edi, ecx
add dword [esp + 0x30], edi
cmp dword [esi + 0x90], 0
je 0x1001feb0
push edi
call sub.LTKRN70N.dll_Ordinal_203
mov ebx, eax
test ebx, ebx
jne 0x1001fe29
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret
lea eax, [esp + 0x10]
lea edx, [ebx + 3]
mov cx, word [eax]
mov word [ebx], cx
lea ecx, [edi - 3]
mov al, byte [eax + 2]
mov byte [ebx + 2], al
lea eax, [esp + 0x1c]
mov dword [esp + 0x14], edx
push eax
mov dword [esp + 0x20], 2
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1c]
push ecx
push 0xffffffffffffffff
push edx
call fcn.1000e960
add esp, 0x10
mov ebp, eax
test ebp, ebp
je 0x1001fe7a
push ebx
call sub.LTKRN70N.dll_Ordinal_208
mov eax, ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ebx
push eax
push edi
push edi
push 0xe0
call dword [esi + 0x90]
add esp, 0x10
mov edi, eax
test edi, edi
push ebx
je 0x1001fea9
call sub.LTKRN70N.dll_Ordinal_208
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret
call sub.LTKRN70N.dll_Ordinal_208
jmp 0x1001feeb
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push edx
sub edi, 3
mov dword [esp + 0x1c], eax
push edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 3
lea eax, [esp + 0x20]
push eax
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x1002002f
test byte [esp + 0x55], 1
je 0x1001ff36
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x1c]
push 0x300
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 3
push eax
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x1002002f
add dword [esp + 0x30], 0x300
mov al, byte [esp + 0x65]
and al, 0x20
cmp al, 1
sbb eax, eax
inc eax
mov dword [esi + 0x108], eax
mov al, byte [esp + 0x56]
and al, 0x80
cmp al, 1
sbb eax, eax
inc eax
mov dword [esi + 0x10c], eax
je 0x1001ff77
cmp dword [esp + 0x34], 0
mov eax, dword [esi + 4]
je 0x1001ff73
mov dword [esi + 0x130], eax
inc eax
shr eax, 1
mov dword [esi + 4], eax
jmp 0x1001ff80
add eax, eax
jmp 0x1001ff7a
mov eax, dword [esi + 4]
mov dword [esi + 0x130], eax
cmp dword [esp + 0x34], 0
je 0x1001ffda
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x42]
cmp dword [ecx + 0x180], 0xffffffff
jne 0x1001ffa5
mov dword [ecx + 0x180], eax
call fcn.1001cd60
jmp 0x1001ffaf
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x180], eax
test byte [esp + 0x38], 4
je 0x1001ffbd
or dword [esi + 0xe8], 4
test byte [esp + 0x38], 8
je 0x1001ffd1
push esi
call fcn.10002440
add esp, 4
test eax, eax
jne 0x1002002f
or dword [esi + 0xe8], 0x40
jmp 0x1001ffe8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x180], eax
cmp word [esp + 0x57], 0
je 0x10020016
cmp word [esp + 0x59], 0
je 0x10020016
mov dword [esi + 0x78], 1
xor eax, eax
mov ax, word [esp + 0x57]
mov dword [esi + 0x7c], eax
xor eax, eax
mov ax, word [esp + 0x59]
mov dword [esi + 0x84], eax
xor eax, eax
pop ebp
mov dword [esi + 0x110], 1
pop edi
pop esi
pop ebx
add esp, 0x58
ret
mov eax, 0xfffffff7
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x58
ret