Function at 0x47d930
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov ebx, ecx
push edi
push 0
mov esi, dword [ebx + 0x18]
push esi
push dword [ebx + 0x14]
push dword [ebx + 0x10]
call fcn.004c5590
mov dword [ebp - 4], eax
mov ecx, edx
mov dword [ebp - 8], ecx
cmp esi, 0x200
jb 0x47dc8b
cmp dword [0x561618], 0
je 0x47d981
push ecx
push eax
push str.sun_load_table:_Trying_sector:__llu_n
call fcn.004bdd06
add eax, 0x40
push eax
call fcn.00479b20
add esp, 0x10
mov ecx, dword [ebx + 0x18]
call fcn.00479b80
mov edi, eax
test edi, edi
je 0x47dc82
push dword [ebx + 0x18]
mov edx, edi
mov ecx, ebx
push 0
push 0
call fcn.00490f90
add esp, 0xc
cmp eax, dword [ebx + 0x18]
je 0x47d9e3
test eax, eax
js 0x47d9be
call fcn.00476ab0
mov ecx, 0x4000002
call fcn.00476850
push dword [ebp - 8]
push dword [ebp - 4]
push str.SUN_Disk_Label_in_Sector:__llu
call fcn.00476950
add esp, 0xc
push edi
call fcn.004bae83
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea esi, [ebx + 0x1c]
lea edx, [edi + 0x1fc]
mov ecx, esi
push 0xdabe
call fcn.00490d90
add esp, 4
test al, al
jne 0x47dae9
mov edx, dword [esi]
cmp edx, 1
jne 0x47da32
movzx ecx, byte [edi + 0xbf]
movzx eax, byte [edi + 0xbe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xbd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xbc]
jmp 0x47da58
movzx ecx, byte [edi + 0xbc]
movzx eax, byte [edi + 0xbd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xbe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xbf]
shl ecx, 8
add ecx, eax
cmp ecx, 0x600ddeee
jne 0x47da83
mov edx, edi
mov ecx, ebx
call fcn.0047d620
push edi
movzx ebx, al
call fcn.004bae83
mov al, bl
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 1
jne 0x47daa4
movzx ecx, byte [edi + 0xf]
movzx eax, byte [edi + 0xe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xc]
jmp 0x47dabe
movzx ecx, byte [edi + 0xc]
movzx eax, byte [edi + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xf]
shl ecx, 8
add ecx, eax
cmp ecx, 0x600ddeee
jne 0x47dae9
mov edx, edi
mov ecx, ebx
call fcn.0047d260
push edi
movzx ebx, al
call fcn.004bae83
mov al, bl
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
call fcn.004c5590
cmp dword [0x561618], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
je 0x47db2b
add eax, 1
adc ecx, 0
push ecx
push eax
push str.sun_load_table:_Trying_sector:__llu_n
call fcn.004bdd06
add eax, 0x40
push eax
call fcn.00479b20
add esp, 0x10
lea esi, [ebx + 0x1c]
push dword [ebx + 0x18]
mov edx, edi
mov ecx, ebx
push 0
push 1
call fcn.00490f90
add esp, 0xc
cmp eax, dword [ebx + 0x18]
je 0x47db7b
test eax, eax
js 0x47db56
call fcn.00476ab0
mov ecx, 0x4000002
call fcn.00476850
push dword [ebp - 4]
push dword [ebp - 8]
push str.SUN__Intel__Disk_Label_in_Sector:__llu
call fcn.00476950
add esp, 0xc
push edi
call fcn.004bae83
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xdabe
lea edx, [edi + 0x1fc]
mov ecx, esi
call fcn.00490d90
add esp, 4
test al, al
je 0x47dbdf
call fcn.00476ab0
mov ecx, 0x4000003
call fcn.00476850
cmp dword [esi], 1
jne 0x47dbb8
movzx ecx, byte [edi + 0x1fd]
movzx eax, byte [edi + 0x1fc]
jmp 0x47dbc6
movzx ecx, byte [edi + 0x1fc]
movzx eax, byte [edi + 0x1fd]
shl ecx, 8
add ecx, eax
movzx eax, cx
push eax
push dword [ebp - 4]
push dword [ebp - 8]
push str.SUN__intel__partition_table__Sector:__llu___x
jmp 0x47dc71
cmp dword [esi], 1
jne 0x47dc00
movzx ecx, byte [edi + 0xf]
movzx eax, byte [edi + 0xe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xc]
jmp 0x47dc1a
movzx ecx, byte [edi + 0xc]
movzx eax, byte [edi + 0xd]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xe]
shl ecx, 8
add ecx, eax
movzx eax, byte [edi + 0xf]
shl ecx, 8
add ecx, eax
cmp ecx, 0x600ddeee
je 0x47dacb
call fcn.00476ab0
mov ecx, 0x4000003
call fcn.00476850
cmp dword [esi], 1
jne 0x47dc4f
movzx ecx, byte [edi + 0x1fd]
movzx eax, byte [edi + 0x1fc]
jmp 0x47dc5d
movzx ecx, byte [edi + 0x1fc]
movzx eax, byte [edi + 0x1fd]
shl ecx, 8
add ecx, eax
movzx eax, cx
push eax
push dword [ebp - 4]
push dword [ebp - 8]
push str.SUN__intel__sanity_value__Sector:__llu___x
call fcn.004768f0
add esp, 0x10
push edi
call fcn.004bae83
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00476ab0
mov edi, dword [0x56161c]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x47dcca
push 0xc08
call fcn.004bb5d5
add esp, 4
mov esi, eax
push 0xc08
push 0
push esi
call fcn.004c13c0
add esp, 0xc
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push str.sun_load_table:_disk_labels_bigger_than_block_size
mov dword [esi], 0x4000005
call fcn.004768f0
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret