Function at 0x44015e
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esi]
and eax, 0xfffbffff
cmp eax, 0x20
jg 0x44005d
je 0x4400b2
cmp eax, 0x10
ja case.0x440012.3
jmp dword [eax*4 + 0x440019]
cmp eax, 0x100
jg 0x440081
je 0x4402a7
sub eax, 0x40
je 0x440102
sub eax, 0x40
je 0x44027e
jmp case.0x440012.3
sub eax, 0x400
je 0x440094
sub eax, 0x800
je 0x440094
jmp case.0x440012.3
push esi
call fcn.0043dd70
pop ecx
mov ebx, eax
push esi
call fcn.0043dd8c
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x440376
mov ecx, dword [esi + 8]
push ecx
lea eax, [ebp - 0xc]
push eax
call fcn.004a4dbc
add esp, 8
push 0xb
call fcn.0043b120
pop ecx
mov ebx, eax
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xec]
lea ecx, [ebp - 0xc]
push edx
push ebx
push ecx
call fcn.00454420
add esp, 0xc
push ebx
call fcn.004ab624
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x440376
mov edx, dword [esi + 0xc]
push edx
mov ecx, dword [esi + 8]
push ecx
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0x1b0]
push edx
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov eax, dword [eax + 0xec]
push eax
lea edx, [ebp - 0x2c]
push edx
call fcn.00454c6c
add esp, 0x14
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004a8574
pop ecx
mov ebx, eax
push ebx
call fcn.004ab624
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x440376
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x130], 0
je 0x440228
mov ecx, dword [0x54d750]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov eax, dword [eax + 0xf4]
push eax
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
add dword [eax], 4
mov ebx, dword [eax]
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
cmp ebx, dword [eax + 4]
jne 0x4401b0
call fcn.00432adc
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx - 4]
push eax
call fcn.0043e3f4
add esp, 8
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx - 4]
push eax
push 0
push esi
call fcn.0043ff18
add esp, 0xc
mov ebx, eax
mov eax, dword [0x54d750]
push eax
call sub.KERNEL32.DLL_TlsGetValue
sub dword [eax], 4
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x440237
mov edx, dword [0x54d750]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx]
push eax
call fcn.0043edc0
pop ecx
jmp 0x440237
push 0
push 0
push esi
call fcn.0043ff18
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x440252
push ebx
call fcn.004ab624
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x440376
mov ebx, 0x5393ec
xor eax, eax
mov dword [edi], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
jmp 0x440376
mov ebx, 0x539465
mov dword [edi], 3
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x440376
push esi
call fcn.0043dee4
pop ecx
test eax, eax
je 0x440290
mov ebx, 0x539469
jmp 0x440295
mov ebx, 0x53946d
mov dword [edi], 3
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x440376
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 1
push esi
call fcn.0043e0e0
pop ecx
mov eax, dword [eax]
push eax
call fcn.004ab624
pop ecx
mov ebx, eax
add ebx, 3
mov dword [edi], ebx
inc ebx
push ebx
call fcn.0043b120
pop ecx
mov ebx, eax
mov byte [ebx], 0x40
mov eax, dword [edi]
sub eax, 3
push eax
push esi
call fcn.0043e0e0
pop ecx
mov edx, dword [eax]
push edx
lea ecx, [ebx + 1]
push ecx
call fcn.004ab480
add esp, 0xc
mov eax, dword [edi]
mov byte [ebx + eax - 2], 0x28
mov edx, dword [edi]
mov byte [ebx + edx - 1], 0x29
mov ecx, dword [edi]
mov byte [ebx + ecx], 0
jmp 0x440376
mov dword [ebp - 0x10], 0xb
push esi
call fcn.0043e098
mov esi, eax
mov eax, dword [ebp - 0x10]
pop ecx
dec eax
mov dword [edi], eax
mov edx, dword [ebp + 0x10]
mov dword [edx], 1
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0043b120
pop ecx
mov ebx, eax
mov byte [ebx], 0x30
mov byte [ebx + 1], 0x78
dec dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov byte [ebx + eax], 0
mov eax, esi
and al, 0xf
dec dword [ebp - 0x10]
cmp al, 0xa
jae 0x440351
mov dl, 0x30
jmp 0x440353
mov dl, 0x37
add dl, al
mov eax, dword [ebp - 0x10]
sar esi, 4
mov byte [ebx + eax], dl
cmp dword [ebp - 0x10], 2
jg 0x440342
jmp 0x440376
mov ebx, 0x5393ec
xor eax, eax
mov dword [edi], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret