Function at 0x102082e0
Capabilities:
Allocate thread local storage
Generate random numbers via winapi

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
cmp dword [0x103fb00c], 0
push esi
push edi
mov dword [esp + 0xc], edx
je 0x1020832c
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], str.pycore_init_runtime
mov dword [esp + 0x28], str.main_interpreter_already_initialized
mov dword [esp + 0x2c], 0
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [eax], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0x50]
push eax
mov edx, sym.python310.dll__PyRuntime
mov ecx, edi
call fcn.101fd8e0
add esp, 4
cmp dword [eax], 0
jne 0x102083a2
xor eax, eax
mov ecx, 0x103fb010
xchg dword [ecx], eax
cmp dword [0x103f9f08], 0
jne 0x1020838b
cmp dword [edi + 0x14], 0
mov dword [0x103f9f08], 1
je 0x10208442
mov ecx, dword [edi + 0x18]
test ecx, ecx
jne 0x10208414
xorps xmm0, xmm0
movaps xmmword [sym.python310.dll__Py_HashSecret], xmm0
movq qword [0x103cea10], xmm0
lea eax, [esp + 0x60]
push sym.python310.dll__PyRuntime
push eax
call sym.python310.dll__PyInterpreterState_Enable
add esp, 8
cmp dword [eax], 0
je 0x102083b1
movups xmm0, xmmword [eax]
movd eax, xmm0
test eax, eax
jne 0x1020857f
cmp dword [0x103fb120], 0
jne 0x102083d8
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x102084a8
mov dword [0x103fb124], eax
mov dword [0x103fb120], 1
call sym.python310.dll_PyInterpreterState_New
mov esi, eax
test esi, esi
jne 0x102084d2
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], str.pycore_create_interpreter
mov dword [esp + 0x18], str.cant_make_main_interpreter
movaps xmm0, xmmword [esp + 0x10]
movups xmmword [eax], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
nop word [eax + eax]
imul ecx, ecx, 0x343fd
add ecx, 0x269ec3
mov eax, ecx
shr eax, 0x10
mov byte [edx + sym.python310.dll__Py_HashSecret], al
inc edx
cmp edx, 0x18
jb 0x10208420
jmp 0x1020838b
mov eax, dword [0x103f9f04]
test eax, eax
jne 0x10208468
push 0xf0000000
push 1
push eax
push eax
push 0x103f9f04
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x1020847e
mov eax, dword [0x103f9f04]
push sym.python310.dll__Py_HashSecret
push 0x18
push eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x1020838b
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], str._Py_HashRandomization_Init
mov dword [esp + 0x38], str.failed_to_get_random_numbers_to_initialize_Python
mov dword [esp + 0x3c], 0
movaps xmm0, xmmword [esp + 0x30]
jmp 0x102083a5
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], str._PyGILState_Init
mov dword [esp + 0x48], str.memory_allocation_failed
mov dword [esp + 0x4c], 0
movaps xmm0, xmmword [esp + 0x40]
jmp 0x10208553
lea eax, [esp + 0x70]
mov edx, edi
lea ecx, [esi + 0x204]
push eax
call fcn.101f9da0
add esp, 4
cmp dword [eax], 0
jne 0x10208550
mov edx, 1
mov ecx, esi
call fcn.1020edb0
mov esi, eax
test esi, esi
jne 0x1020852b
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], str.pycore_create_interpreter
mov dword [esp + 0x18], str.cant_make_first_thread
movaps xmm0, xmmword [esp + 0x10]
movups xmmword [eax], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x103fb118]
mov ecx, 0x103fb118
mov eax, esi
xchg dword [ecx], eax
lea eax, [esp + 0x80]
mov ecx, esi
push eax
call fcn.102075f0
add esp, 4
cmp dword [eax], 0
je 0x1020855f
movups xmm0, xmmword [eax]
movd eax, xmm0
test eax, eax
jne 0x1020857f
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov ecx, esi
mov dword [eax], esi
lea eax, [esp + 0x90]
push eax
call fcn.10207f90
add esp, 4
cmp dword [eax], 0
je 0x1020858b
movups xmm0, xmmword [eax]
mov eax, dword [ebp + 8]
movups xmmword [eax], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov dword [0x103fb008], 1
pop edi
pop esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov esp, ebp
pop ebp
ret