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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [ecx]
mov ebx, eax
test eax, eax
jne 0x48a0f4
jmp 0x48a0da
cmp byte [ebp - 0x3c], 0
je 0x48a57a
mov ecx, dword [ebp - 0x10]
mov eax, ebx
mov edx, 2
lock cmpxchg dword [ecx], edx
je 0x48a444
mov ebx, eax
test eax, eax
je 0x48a0da
cmp ebx, 1
je 0x48a0d0
cmp ebx, 3
je 0x48a46f
mov eax, ebx
and eax, 3
cmp eax, 2
je 0x48a12e
jmp 0x48a5a8
mov eax, ebx
and eax, 3
cmp eax, 2
jne 0x48a430
mov eax, dword [0x56d178]
test eax, eax
je 0x48a153
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jb 0x48a170
cmp dword [eax + 4], 0
mov esi, eax
je 0x48a170
add esi, 8
jmp 0x48a230
mov ecx, 0x56d178
call fcn.0048a7c0
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 2
jae 0x48a143
nop dword [eax + eax]
mov eax, dword [0x56d178]
test eax, eax
je 0x48a190
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x48a1b0
mov edi, eax
cmp eax, 1
jne 0x48a208
jmp 0x48a525
mov ecx, 0x56d178
call fcn.0048a7c0
push eax
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
jne 0x48a184
nop word cs:[eax + eax]
nop
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x48a1d2
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x48a4ac
mov dword [0x5920d8], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x48a4ac
mov dword [eax], 0x56d178
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x56d178]
test eax, eax
je 0x48a31f
dec eax
push edi
push eax
call sub.KERNEL32.dll_TlsSetValue
mov ecx, dword [edi + 8]
cmp dword [edi + 4], 0
lea esi, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], 0
je 0x48a230
test ecx, ecx
je 0x48a230
lock dec dword [ecx]
jne 0x48a230
call fcn.0048a780
mov edi, dword [esi]
test edi, edi
jne 0x48a2d2
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x48a25c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x48a49d
mov dword [0x5920d8], eax
push 0x20
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x48a49d
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [ebp - 0x40], ebx
mov dword [eax + 0x10], 0
mov edi, eax
movq xmm0, qword [0x5920d0]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
nop dword [eax]
mov ebx, eax
mov ecx, edx
add ebx, 1
adc ecx, 0
jb 0x48a477
lock cmpxchg8b qword [0x5920d0]
jne 0x48a2a0
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ecx
mov byte [edi + 0x18], 0
cmp dword [esi], 0
jne 0x48a4bb
mov ebx, dword [ebp - 0x40]
mov dword [esi], edi
lock inc dword [edi]
jle 0x48a5f7
mov ecx, dword [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x2c], 0
lea edx, [ebp - 0x32]
add eax, 0xfffffffe
mov dword [ebp - 0x30], eax
mov eax, ebx
lock cmpxchg dword [ecx], edx
je 0x48a410
mov ebx, eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x48a120
lock dec dword [eax]
jne 0x48a120
mov ecx, dword [ebp - 0x34]
call fcn.0048a780
jmp 0x48a120
mov ecx, 0x56d178
call fcn.0048a7c0
jmp 0x48a201
call fcn.0048aad0
mov esi, eax
test eax, eax
je 0x48a481
mov edi, dword [esi]
test edi, edi
jne 0x48a359
xor ecx, ecx
call fcn.00489e40
cmp dword [esi], 0
mov edi, eax
jne 0x48a4f0
mov dword [esi], edi
lock inc dword [edi]
jle 0x48a5f7
lock dec byte [edi + 0x18]
je 0x48a396
mov esi, dword [0x5920e4]
lea ebx, [edi + 0x18]
test esi, esi
je 0x48a3a4
nop word cs:[eax + eax]
nop
push 0xffffffffffffffff
push 1
push 0x57ccc0
push ebx
call esi
xor ecx, ecx
mov al, 1
lock cmpxchg byte [ebx], cl
jne 0x48a380
lock dec dword [edi]
jne 0x48a410
mov ecx, edi
call fcn.0048a780
jmp 0x48a410
mov ecx, dword [0x56d13c]
cmp ecx, 0xffffffff
jne 0x48a3ee
mov dword [ebp - 0x38], 0xffffffff
mov eax, dword [0x56d144]
push 0
push 0
push 0xc0000000
lea ecx, [ebp - 0x38]
push ecx
call eax
test eax, eax
jne 0x48a539
mov ecx, dword [ebp - 0x38]
mov eax, 0xffffffff
lock cmpxchg dword [0x56d13c], ecx
je 0x48a3ee
mov esi, eax
push ecx
call sub.KERNEL32.dll_CloseHandle
mov ecx, esi
mov eax, dword [0x56d14c]
push 0
push 0
push ebx
push ecx
call eax
xor eax, eax
xchg byte [ebx], al
lock dec dword [edi]
je 0x48a39b
nop word cs:[eax + eax]
nop
movzx eax, byte [ebp - 0x2c]
test al, al
je 0x48a330
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x48a430
lock dec dword [eax]
jne 0x48a430
mov ecx, dword [ebp - 0x34]
call fcn.0048a780
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ebx, eax
test eax, eax
jne 0x48a0f4
jmp 0x48a0da
mov eax, dword [ebp + 0xc]
cmp ebx, 1
mov dword [ebp - 0x28], 3
sete byte [ebp - 0x24]
mov eax, dword [eax + 0x10]
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 8]
call eax
add esp, 8
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
call 0x48a620
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0048ca60
jmp 0x48a5f7
mov edx, 0x5e
mov ecx, 0x57d240
push 0x57d2a0
call fcn.0046f130
add esp, 4
jmp 0x48a5f7
mov ecx, 8
mov edx, 0x20
call fcn.00429f60
mov ecx, 4
mov edx, 0xc
call fcn.00429f60
mov dword [ebp - 0x28], 0x57cc58
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], str.PathTryFromIntErrornumber_of_bones_should_fit_in_i32vmesh_src_v3mc.rs
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x28]
mov edx, 0x57ccb0
call fcn.00469660
jmp 0x48a5f7
mov dword [ebp - 0x28], 0x57cc58
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], str.PathTryFromIntErrornumber_of_bones_should_fit_in_i32vmesh_src_v3mc.rs
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x28]
mov edx, 0x57ccb0
call fcn.00469660
jmp 0x48a5f7
mov ecx, 0x57d240
mov edx, 0x5e
push 0x57d2a0
call fcn.0046f130
lea ebx, [ebp - 0x44]
lea esi, [ebp - 0x4c]
mov dword [ebp - 0x28], 0x57e9c8
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x48], 0x473200
mov dword [ebp - 0x1c], 1
lea ecx, [ebp - 0x28]
mov edx, 0x57ea00
call fcn.00469660
jmp 0x48a5f7
mov dword [ebp - 0x28], 0x57ec44
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], str.PathTryFromIntErrornumber_of_bones_should_fit_in_i32vmesh_src_v3mc.rs
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x28]
call fcn.00469660
mov ecx, str.assertion_failed:_state_and_queue.addr____STATE_MASK__RUNNING
mov edx, 0x40
push dword [ebp + 0x10]
call fcn.0046b100
mov esi, eax
mov ecx, dword [ebp - 0x10]
mov edx, 1
call 0x48a620
jmp 0x48a612
ud2
push esi
call fcn.005638c0
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
xchg dword [ecx], edx
mov eax, edx
and eax, 3
cmp eax, 2
mov dword [ebp - 0x18], eax
jne 0x48a748
add edx, 0xfffffffe
jne 0x48a656
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
mov edx, ebx
je 0x48a641
mov esi, dword [edx]
mov ebx, dword [edx + 4]
mov dword [edx], 0
test esi, esi
je 0x48a6f3
mov byte [edx + 8], 1
mov al, 1
xchg byte [esi + 0x18], al
cmp al, 0xff
jne 0x48a685
mov eax, dword [0x5920e8]
lea edi, [esi + 0x18]
test eax, eax
je 0x48a693
push edi
call eax
lock dec dword [esi]
jne 0x48a650
mov ecx, esi
call fcn.0048a780
jmp 0x48a650
mov ecx, dword [0x56d13c]
cmp ecx, 0xffffffff
jne 0x48a6db
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [0x56d144]
push 0
push 0
push 0xc0000000
lea ecx, [ebp - 0x10]
push ecx
call eax
test eax, eax
jne 0x48a707
mov ecx, dword [ebp - 0x10]
mov eax, 0xffffffff
lock cmpxchg dword [0x56d13c], ecx
je 0x48a6db
push ecx
mov dword [ebp - 0x1c], eax
call sub.KERNEL32.dll_CloseHandle
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x56d148]
push 0
push 0
push edi
push ecx
call eax
lock dec dword [esi]
jne 0x48a650
jmp 0x48a68a
mov ecx, str.called__Option::unwrap____on_a__None__value_home_rafalh_.cargo_registry_src_index.crates.io_6f17d22bba15001f_serde_json_1.0.81_src_read.rs
mov edx, 0x2b
push 0x57ecb8
call fcn.0046b100
lea ebx, [ebp - 0x20]
lea edi, [ebp - 0x18]
mov dword [ebp - 0x38], 0x57e9c8
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x14], 0x473200
mov dword [ebp - 0x2c], 1
lea ecx, [ebp - 0x38]
mov edx, 0x57ea00
call fcn.00469660
ud2
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x18]
mov edx, 0x57ec8c
push 0x57ecc8
push eax
call fcn.0048b150
lock dec dword [esi]
mov edi, eax
jne 0x48a773
mov ecx, esi
call fcn.0048a780
push edi
call fcn.005638c0
nop dword [eax]