Function at 0x440230
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 0x4402a5
je 0x4402fa
cmp eax, 0x10
ja case.0x44025a.3
jmp dword [eax*4 + 0x440261]
cmp eax, 0x100
jg 0x4402c9
je 0x4404ef
sub eax, 0x40
je 0x44034a
sub eax, 0x40
je 0x4404c6
jmp case.0x44025a.3
sub eax, 0x400
je 0x4402dc
sub eax, 0x800
je 0x4402dc
jmp case.0x44025a.3
push esi
call fcn.0043dfb8
pop ecx
mov ebx, eax
push esi
call fcn.0043dfd4
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x4405be
mov ecx, dword [esi + 8]
push ecx
lea eax, [ebp - 0xc]
push eax
call fcn.004a5004
add esp, 8
push 0xb
call fcn.0043b368
pop ecx
mov ebx, eax
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0xec]
lea ecx, [ebp - 0xc]
push edx
push ebx
push ecx
call fcn.00454668
add esp, 0xc
push ebx
call fcn.004ab86c
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x4405be
mov edx, dword [esi + 0xc]
push edx
mov ecx, dword [esi + 8]
push ecx
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax + 0x1b0]
push edx
mov ecx, dword [0x555894]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov eax, dword [eax + 0xec]
push eax
lea edx, [ebp - 0x2c]
push edx
call fcn.00454eb4
add esp, 0x14
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004a87bc
pop ecx
mov ebx, eax
push ebx
call fcn.004ab86c
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x4405be
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
cmp dword [eax + 0x130], 0
je 0x440470
mov ecx, dword [0x555894]
push ecx
call sub.KERNEL32.DLL_TlsGetValue
mov eax, dword [eax + 0xf4]
push eax
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
add dword [eax], 4
mov ebx, dword [eax]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
cmp ebx, dword [eax + 4]
jne 0x4403f8
call fcn.00432d24
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx - 4]
push eax
call fcn.0043e63c
add esp, 8
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx - 4]
push eax
push 0
push esi
call fcn.00440160
add esp, 0xc
mov ebx, eax
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
sub dword [eax], 4
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x44047f
mov edx, dword [0x555894]
push edx
call sub.KERNEL32.DLL_TlsGetValue
mov ecx, dword [eax]
mov eax, dword [ecx]
push eax
call fcn.0043f008
pop ecx
jmp 0x44047f
push 0
push 0
push esi
call fcn.00440160
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x44049a
push ebx
call fcn.004ab86c
pop ecx
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x4405be
mov ebx, 0x541530
xor eax, eax
mov dword [edi], eax
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
jmp 0x4405be
mov ebx, 0x5415a9
mov dword [edi], 3
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x4405be
push esi
call fcn.0043e12c
pop ecx
test eax, eax
je 0x4404d8
mov ebx, 0x5415ad
jmp 0x4404dd
mov ebx, 0x5415b1
mov dword [edi], 3
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
jmp 0x4405be
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 1
push esi
call fcn.0043e328
pop ecx
mov eax, dword [eax]
push eax
call fcn.004ab86c
pop ecx
mov ebx, eax
add ebx, 3
mov dword [edi], ebx
inc ebx
push ebx
call fcn.0043b368
pop ecx
mov ebx, eax
mov byte [ebx], 0x40
mov eax, dword [edi]
sub eax, 3
push eax
push esi
call fcn.0043e328
pop ecx
mov edx, dword [eax]
push edx
lea ecx, [ebx + 1]
push ecx
call fcn.004ab6c8
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 0x4405be
mov dword [ebp - 0x10], 0xb
push esi
call fcn.0043e2e0
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.0043b368
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 0x440599
mov dl, 0x30
jmp 0x44059b
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 0x44058a
jmp 0x4405be
mov ebx, 0x541530
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