Function at 0x1023e560
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, dword [0x103b1004]
xor eax, esp
mov dword [esp + 0x28], eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
push esi
push edi
mov edi, edx
test ebx, ebx
jne 0x1023e5b7
cmp dword [0x103fb11c], ebx
jne 0x1023e596
mov dword [esp + 0x18], ebx
jmp 0x1023e5b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [0x103fb124]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push esi
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
jne 0x1023e5e3
test ebx, ebx
jne 0x1023e5e0
mov edi, dword [0x103fb11c]
test edi, edi
jne 0x1023e5e3
mov eax, str.unable_to_get_the_interpreter_state
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 8]
mov edi, dword [edi + 4]
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x1023e605
mov eax, str.unable_to_get_the_thread_head_state
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
xor eax, eax
push 0x101b5380
mov dword [esp + 0x24], eax
call ebx
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
add esp, 4
mov dword [esp + 0x24], eax
xor eax, eax
test eax, eax
je 0x1023e696
push 0x101b5380
call ebx
add esp, 4
mov dword [esp + 0x10], eax
nop dword [eax]
call esi
push 1
push 0x10367728
push dword [esp + 0x1c]
mov dword [eax], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
mov ebx, eax
call esi
mov edi, dword [eax]
test ebx, ebx
jns 0x1023e66b
cmp edi, 4
je 0x1023e640
push dword [esp + 0x10]
mov eax, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
call eax
add esp, 4
test ebx, ebx
jns 0x1023e681
call esi
mov dword [eax], edi
cmp dword [esp + 0x20], 0x64
jae 0x1023e81a
mov ebx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
mov edi, dword [esp + 0x1c]
push 0x101b5380
call ebx
add esp, 4
mov dword [esp + 0x10], eax
cmp edi, dword [esp + 0x18]
jne 0x1023e6e0
nop word [eax + eax]
call esi
push 0x11
push str.Current_thread_0x
push dword [esp + 0x1c]
mov dword [eax], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
mov ebx, eax
call esi
mov edi, dword [eax]
test ebx, ebx
jns 0x1023e70b
cmp edi, 4
je 0x1023e6b0
jmp 0x1023e70b
call esi
push 9
push str.Thread_0x
push dword [esp + 0x1c]
mov dword [eax], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
mov ebx, eax
call esi
mov edi, dword [eax]
test ebx, ebx
jns 0x1023e70b
cmp edi, 4
je 0x1023e6e0
push dword [esp + 0x10]
mov eax, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
call eax
add esp, 4
test ebx, ebx
jns 0x1023e721
call esi
mov dword [eax], edi
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x30]
mov ebx, dword [sym.python310.dll_Py_hexdigits]
xor edi, edi
mov byte [esp + 0x30], 0
mov ecx, dword [ecx + 0x60]
nop dword [eax]
mov eax, ecx
dec edx
and eax, 0xf
shr ecx, 4
inc edi
mov al, byte [eax + ebx]
mov byte [edx], al
cmp edi, 8
jl 0x1023e740
test ecx, ecx
jne 0x1023e740
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x34]
sub eax, edx
push eax
call fcn.101e9c80
push 0x101b5380
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
add esp, 0xc
mov dword [esp + 0x10], eax
nop dword [eax + eax]
call esi
push 0x1b
push str.__most_recent_call_first_:_n
push dword [esp + 0x1c]
mov dword [eax], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
mov ebx, eax
call esi
mov edi, dword [eax]
test ebx, ebx
jns 0x1023e7ab
cmp edi, 4
je 0x1023e780
push dword [esp + 0x10]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
add esp, 4
test ebx, ebx
jns 0x1023e7c0
call esi
mov dword [eax], edi
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x18]
jne 0x1023e7eb
mov eax, dword [edi + 8]
cmp dword [eax + 0x1c4], 0
je 0x1023e7eb
mov ecx, dword [esp + 0x14]
mov edx, str.__Garbage_collecting_n
push 0
push 0x15
call fcn.101e9c80
add esp, 8
mov ecx, dword [esp + 0x14]
mov edx, edi
push 0
call fcn.1023e3f0
mov eax, dword [esp + 0x24]
add esp, 4
mov edi, dword [edi + 4]
inc eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
test edi, edi
je 0x1023e870
mov ebx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
jmp 0x1023e627
push 0x101b5380
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
add esp, 4
mov dword [esp + 0x10], eax
nop dword [eax]
call esi
push 4
push str...._n
push dword [esp + 0x1c]
mov dword [eax], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
add esp, 0xc
mov ebx, eax
call esi
mov edi, dword [eax]
test ebx, ebx
jns 0x1023e85b
cmp edi, 4
je 0x1023e830
push dword [esp + 0x10]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
add esp, 4
test ebx, ebx
jns 0x1023e870
call esi
mov dword [eax], edi
push dword [esp + 0x24]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__set_thread_local_invalid_parameter_handler]
mov ecx, dword [esp + 0x38]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret