Function at 0x47bf00
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], 0
xor ebx, ebx
jmp 0x47c209
mov eax, ebx
shl eax, 5
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [edx + eax]
cmp eax, 2
je 0x47bf60
push 1
call fcn.0049d010
pop ecx
push eax
push 1
push str.SizeOfCStructure
push 0
push 0x7e7
push 1
call fcn.00492870
add esp, 0x18
xor eax, eax
jmp 0x47c237
mov eax, ebx
shl eax, 5
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [edx + eax + 0xc]
mov dword [ebp - 0x1c], eax
cmp eax, 0x14
je 0x47c025
jg 0x47bfc7
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffe2
je 0x47c03d
jg 0x47bf99
cmp dword [ebp - 0x1c], 0xffffffd8
je 0x47c055
jmp case.0x47bfc0.0
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffec
je 0x47c025
jl case.0x47bfc0.0
mov eax, dword [ebp - 0x1c]
cmp eax, 0xfffffff6
jl case.0x47bfc0.0
cmp eax, 0xa
jg case.0x47bfc0.0
jmp dword [eax*4 + 0x697694]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x28
je 0x47c055
jg 0x47bfe0
cmp dword [ebp - 0x1c], 0x1e
je 0x47c03d
jmp case.0x47bfc0.0
mov eax, dword [ebp - 0x1c]
cmp eax, 0x32
je 0x47c06d
jl case.0x47bfc0.0
cmp dword [ebp - 0x1c], 0x3c
je 0x47c085
jmp case.0x47bfc0.0
mov dword [ebp - 4], 1
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 2
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 8
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov dword [ebp - 4], 4
jmp 0x47c1bd
lea edi, [ebp - 0x3c]
lea esi, [0x69764c]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
shl eax, 5
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
mov eax, dword [edx + eax + 0xc]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.004a0410
add esp, 8
mov eax, ebx
shl eax, 5
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
cmp dword [edx + eax + 0xc], 0x2710
jl 0x47c0e8
mov dword [ebp - 4], 4
jmp 0x47c1bd
mov eax, ebx
shl eax, 5
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
cmp dword [edx + eax + 0xc], 0x3e8
jl 0x47c195
lea eax, [ebp - 0x3c]
push eax
push 1
push str.HB_CSTRUCTUREFROMID
call fcn.0048fd10
add esp, 0xc
mov dword [ebp - 0x40], eax
mov edx, dword [eax]
and edx, 0x8000
je 0x47c163
mov eax, dword [eax + 8]
movzx eax, word [eax + 0xc]
test eax, eax
je 0x47c163
push 0
push str.SizeOf
mov eax, dword [ebp - 0x40]
push eax
call fcn.0048a450
add esp, 0xc
mov eax, dword [0x7d8230]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea eax, [eax + 0x10]
push eax
call fcn.0049ffd0
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.0049f7d0
pop ecx
jmp 0x47c1bd
mov eax, dword [ebp - 0x40]
push eax
call fcn.0049f7d0
pop ecx
push 1
call fcn.0049d010
pop ecx
push eax
push 1
push str.SizeOfCStructure
push 0
push 0x7e7
push 1
call fcn.00492870
add esp, 0x18
xor eax, eax
jmp 0x47c237
push 1
call fcn.0049d010
pop ecx
push eax
push 1
push str.SizeOfCStructure
push 0
push 0x7e7
push 1
call fcn.00492870
add esp, 0x18
xor eax, eax
jmp 0x47c237
mov eax, dword [ebp - 8]
test eax, eax
je 0x47c202
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 4], eax
jae 0x47c1d4
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
jmp 0x47c1da
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
xor edx, edx
div ecx
mov eax, edx
mov byte [ebp - 0x15], al
movzx eax, al
test eax, eax
jle 0x47c202
mov eax, dword [ebp - 0x10]
movzx edx, byte [ebp - 0x15]
sub eax, edx
add dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add dword [ebp - 8], eax
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x47bf26
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
xor edx, edx
div ecx
mov eax, edx
mov byte [ebp - 0x15], al
movzx eax, al
test eax, eax
jle 0x47c234
mov eax, dword [ebp + 0xc]
movzx edx, byte [ebp - 0x15]
sub eax, edx
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret