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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
push 0
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], edi
mov eax, dword [edi + 4]
push dword [edi + 0x18]
mov esi, dword [eax + 8]
sub esi, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
sbb eax, dword [edi + 0x14]
push eax
push esi
call fcn.004c5590
cmp dword [0x561618], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
je 0x47d2d4
cmp dword [edi + 0x1c], 1
jne 0x47d2ad
movzx ecx, byte [ebx + 0x1f]
movzx eax, byte [ebx + 0x1e]
jmp 0x47d2b5
movzx ecx, byte [ebx + 0x1e]
movzx eax, byte [ebx + 0x1f]
shl ecx, 8
add ecx, eax
movzx eax, cx
push eax
push str.load_table_i386:_Number_of_partitions:__d_n
call fcn.004bdd06
add eax, 0x40
push eax
call fcn.00479b20
add esp, 0xc
xor edx, edx
lea esi, [ebx + 0x49]
mov edi, dword [edi + 0x1c]
mov dword [ebp - 8], edx
cmp edi, 1
jne 0x47d2ee
movzx ecx, byte [ebx + 0x1f]
movzx eax, byte [ebx + 0x1e]
jmp 0x47d2f6
movzx ecx, byte [ebx + 0x1e]
movzx eax, byte [ebx + 0x1f]
shl ecx, 8
add ecx, eax
movzx eax, cx
cmp edx, eax
jae 0x47d60e
cmp dword [0x561618], 0
mov dword [ebp - 0x18], 1
je 0x47d3cf
movzx ebx, byte [esi - 1]
movzx eax, byte [esi]
cmp edi, 1
jne 0x47d32b
shl eax, 8
jmp 0x47d32e
shl ebx, 8
add ebx, eax
cmp edi, 1
jne 0x47d351
movzx edx, byte [esi + 0xa]
movzx eax, byte [esi + 9]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 8]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 7]
jmp 0x47d36b
movzx edx, byte [esi + 7]
movzx eax, byte [esi + 8]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 9]
shl edx, 8
add edx, eax
movzx eax, byte [esi + 0xa]
shl edx, 8
add edx, eax
cmp edi, 1
jne 0x47d391
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 3]
jmp 0x47d3ab
movzx ecx, byte [esi + 3]
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 6]
shl ecx, 8
add ecx, eax
movzx eax, bx
push eax
push edx
push ecx
push dword [ebp - 8]
push str.load_table_i386:__u__Starting_Sector:__u__Size:__u__Type:__hu_n
call fcn.004bdd06
add eax, 0x40
push eax
call fcn.00479b20
add esp, 0x18
mov edi, dword [ebp - 0x1c]
movzx ecx, byte [esi + 9]
movzx eax, byte [esi + 8]
movzx ebx, byte [esi + 0xa]
mov edi, dword [edi + 0x1c]
movzx edx, byte [esi + 7]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], eax
cmp edi, 1
jne 0x47d404
mov eax, ebx
shl eax, 8
add eax, ecx
shl eax, 8
add eax, dword [ebp - 4]
shl eax, 8
add eax, edx
jmp 0x47d416
mov eax, edx
shl eax, 8
add eax, dword [ebp - 4]
shl eax, 8
add eax, ecx
shl eax, 8
add eax, ebx
test eax, eax
je 0x47d5a4
cmp dword [ebp - 8], 2
jae 0x47d47a
cmp edi, 1
jne 0x47d445
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 3]
jmp 0x47d45f
movzx ecx, byte [esi + 3]
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 6]
shl ecx, 8
add ecx, eax
xor eax, eax
cmp eax, dword [ebp - 0x20]
ja 0x47d5b6
jb 0x47d47a
cmp ecx, dword [ebp - 0x24]
ja 0x47d5b6
movzx ecx, byte [esi]
movzx eax, byte [esi - 1]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
cmp edi, 1
jne 0x47d496
mov eax, ecx
shl eax, 8
add eax, dword [ebp - 0xc]
jmp 0x47d49b
shl eax, 8
add eax, ecx
cmp ax, 5
jne 0x47d4f1
cmp edi, 1
jne 0x47d4c2
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 3]
jmp 0x47d4dc
movzx ecx, byte [esi + 3]
movzx eax, byte [esi + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 6]
shl ecx, 8
add ecx, eax
mov eax, dword [ebp - 0x18]
test ecx, ecx
mov ecx, 4
cmove eax, ecx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0xc]
cmp edi, 1
jne 0x47d503
mov eax, dword [ebp - 0x10]
shl eax, 8
add ecx, eax
jmp 0x47d509
shl ecx, 8
add ecx, dword [ebp - 0x10]
cmp edi, 1
jne 0x47d51f
shl ebx, 8
add ebx, dword [ebp - 0x14]
shl ebx, 8
add ebx, dword [ebp - 4]
shl ebx, 8
jmp 0x47d52e
shl edx, 8
add edx, dword [ebp - 4]
shl edx, 8
add edx, dword [ebp - 0x14]
shl edx, 8
add ebx, edx
cmp edi, 1
jne 0x47d551
movzx edi, byte [esi + 6]
movzx eax, byte [esi + 5]
shl edi, 8
add edi, eax
movzx eax, byte [esi + 4]
shl edi, 8
add edi, eax
movzx eax, byte [esi + 3]
jmp 0x47d56b
movzx edi, byte [esi + 3]
movzx eax, byte [esi + 4]
shl edi, 8
add edi, eax
movzx eax, byte [esi + 5]
shl edi, 8
add edi, eax
movzx eax, byte [esi + 6]
push dword [ebp - 8]
shl edi, 8
push 0xffffffffffffffff
add edi, eax
call fcn.0047d100
mov edx, dword [ebp - 0x18]
push eax
push 0
push ebx
push 0
push edi
mov edi, dword [ebp - 0x1c]
mov ecx, edi
call fcn.00477110
add esp, 0x1c
test eax, eax
je 0x47d605
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 0x28]
inc edx
add esi, 0xc
jmp 0x47d2d9
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
inc edx
mov ebx, dword [ebp - 0x28]
add esi, 0xc
jmp 0x47d2d9
call fcn.00476ab0
mov edi, dword [0x56161c]
push edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x47d5f2
push 0xc08
call fcn.004bb5d5
push 0xc08
mov esi, eax
push 0
push esi
call fcn.004c13c0
add esp, 0x10
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push str.sun_load_i386:_Starting_sector_too_large_for_image
mov dword [esi], 0x4000006
call fcn.004768f0
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret