Function at 0x4444a0
Capabilities:
Create thread
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x2c0
mov esi, esp
mov dword [esi + 0x298], ebp
lea eax, [esi + 0x2a0]
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x48], edx
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x45f4e0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov ebx, dword [edx + 8]
test ebx, ebx
jne 0x444614
lea edi, [esi + 0xc0]
mov edx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUSThreadPoolBuildError
mov ecx, edi
push 0x11
call fcn.00456490
add esp, 4
mov eax, dword [edi]
cmp eax, 0x80000000
je 0x44457e
cmp eax, 0x80000001
je 0x44452f
test eax, eax
je 0x44457e
push dword [esi + 0xc4]
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x44457e
mov edi, dword [esi + 0xc4]
cmp edi, 0x80000000
je 0x44457e
lea ebx, [esi + 0xc0]
mov edx, dword [ebx + 8]
mov ecx, ebx
mov dword [esi + 0x3c], edx
push dword [ebx + 0xc]
call fcn.0041c200
add esp, 4
mov al, byte [ebx]
mov ebx, dword [ebx + 4]
test edi, edi
je 0x444576
push dword [esi + 0x3c]
push 0
push dword [0x48fd58]
mov byte [esi + 0x3c], al
call dword [sym.imp.kernel32.dll_HeapFree]
mov al, byte [esi + 0x3c]
test al, al
je 0x445422
lea edi, [esi + 0xc0]
mov edx, 0x47c5fd
mov ecx, edi
push 0x11
call fcn.00456490
add esp, 4
mov eax, dword [edi]
cmp eax, 0x80000000
je 0x4445d0
cmp eax, 0x80000001
je 0x4445bf
test eax, eax
je 0x4445d0
push dword [esi + 0xc4]
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4445d0
mov eax, dword [esi + 0xc4]
cmp eax, 0x80000000
jne 0x445340
xorps xmm0, xmm0
mov dword [esi + 0xe0], 0
movaps xmmword [esi + 0xd0], xmm0
movaps xmmword [esi + 0xc0], xmm0
push edi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov ebx, dword [esi + 0xd4]
mov edx, dword [esi + 0x48]
test ebx, ebx
jne 0x444614
mov ecx, 2
mov edx, 0x47ef54
call fcn.00429aac
mov edx, dword [esi + 0x48]
xor ebx, ebx
inc ebx
mov eax, 0xff
mov ecx, 4
cmp ebx, eax
cmovb eax, ebx
mov ebx, eax
xor eax, eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc8], eax
mov dword [esi + 0xcc], eax
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], eax
mov al, byte [edx + 0x2d]
test ebx, ebx
mov dword [esi + 0x54], ebx
jne 0x4450b0
mov eax, dword [esi + 0xd0]
mov edx, dword [esi + 0xd4]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xc8]
mov ebx, dword [esi + 0x54]
mov edi, dword [esi + 0xcc]
mov dword [esi + 0x40], edx
xor edx, edx
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0xc4]
mov dword [esi + 0x78], ecx
mov ecx, 4
test ebx, ebx
mov dword [esi + 0xc0], edx
mov dword [esi + 0x50], edi
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc8], edx
mov dword [esi + 0xcc], edx
mov dword [esi + 0xd0], ecx
mov dword [esi + 0xd4], edx
mov dword [esi + 0x7c], eax
jne 0x445241
xor edi, edi
mov eax, dword [esi + 0xc8]
movsd xmm0, qword [esi + 0xc0]
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x1dc], edx
mov dword [esi + 0x1e8], eax
mov eax, dword [esi + 0x40]
movsd qword [esi + 0x1e0], xmm0
test eax, eax
je 0x444730
cmp eax, 0x38e38e3
ja 0x445501
lea eax, [eax*4]
lea edx, [eax + eax*8]
test edx, edx
js 0x445501
mov al, byte [0x48fdb4]
xor ecx, ecx
mov dword [esi + 0x3c], edx
call fcn.0045a4d0
test eax, eax
jne 0x444735
mov edx, dword [esi + 0x3c]
mov ecx, 4
call fcn.0046d190
mov eax, 4
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x50]
mov dword [esi + 0x1d8], edi
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc8], edx
mov edx, dword [esi + 0x40]
lea ecx, [ecx + edx*8]
test edx, edx
mov dword [esi + 0x1a8], edx
mov dword [esi + 0x1ac], eax
mov dword [esi + 0x1b0], 0
mov dword [esi + 0xcc], ecx
je 0x4447ea
add eax, 0x20
xor edx, edx
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0x44]
lea ecx, [ecx + edx*8 + 8]
inc edx
mov edi, dword [ecx - 8]
mov bl, byte [ecx - 4]
mov dword [esi + 0x40], edi
mov byte [esi + 0x50], bl
lea edi, [esi + 0x202]
xor ebx, ebx
mov dword [edi + 4], ebx
mov dword [edi], ebx
mov word [edi + 8], bx
mov dword [eax - 0x20], ebx
mov word [eax - 0x1c], bx
movsd xmm0, qword [esi + 0x200]
movsd qword [eax - 0x1a], xmm0
mov edi, dword [esi + 0x208]
mov dword [eax - 0x12], edi
mov dword [eax - 0xc], ebx
mov dword [eax - 8], ebx
mov edi, dword [esi + 0x40]
mov bl, byte [esi + 0x50]
mov dword [eax - 4], edi
mov byte [eax], bl
add eax, 0x24
cmp ecx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
jne 0x444781
mov ebx, dword [esi + 0x54]
mov dword [esi + 0xc4], ecx
jmp 0x4447ec
xor edx, edx
lea ecx, [esi + 0xc0]
mov dword [esi + 0x1b0], edx
call fcn.0044305d
movsd xmm0, qword [esi + 0x1a8]
mov eax, dword [esi + 0x1b0]
test ebx, ebx
movsd qword [esi + 0x80], xmm0
mov dword [esi + 0x88], eax
je 0x444879
mov ecx, ebx
mov al, byte [0x48fdb4]
xor edi, edi
shl ecx, 6
mov dword [esi + 0x3c], ecx
lea edx, [ecx + 0x40]
xor ecx, ecx
call fcn.0045a4d0
test eax, eax
je 0x44558d
mov ecx, eax
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
lea edx, [ecx + 0x40]
add ecx, 0x48
xor eax, eax
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], edx
mov dword [esi + 0xc8], 0
inc eax
mov dword [ecx - 8], edi
mov word [ecx - 4], 0
mov dword [ecx], edi
add ecx, 0x40
cmp ebx, eax
jne 0x444864
jmp 0x444895
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], 0x40
mov dword [esi + 0xc8], 0
xor eax, eax
lea ebx, [esi + 0xf8]
lea edi, [esi + 0x200]
mov dword [esi + 0x68], eax
movsd xmm0, qword [ebx - 0x38]
mov ecx, edi
movsd qword [esi + 0x60], xmm0
call fcn.00443012
mov eax, dword [esi + 0x1e8]
movsd xmm0, qword [esi + 0x1e0]
mov dword [ebx - 0x2d], eax
mov eax, dword [esi + 0x48]
movsd qword [ebx - 0x35], xmm0
movsd xmm0, qword [ebx - 0x31]
mov ecx, dword [eax + 0xc]
movsd qword [esi + 0x1af], xmm0
movsd xmm0, qword [ebx - 0x38]
mov dword [esi + 0x3c], ecx
mov ecx, dword [eax + 0x10]
movsd qword [esi + 0x1a8], xmm0
mov dword [esi + 0x40], ecx
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov edx, dword [eax + 0x1c]
mov dword [esi + 0x50], edx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x1c], ecx
mov dword [esi + 0x44], edx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x54], edx
mov edx, dword [eax + 0x28]
mov dword [eax + 0x24], ecx
mov dword [esi + 0x70], edx
push 0x80
push edi
push ebx
call fcn.00462380
add esp, 0xc
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 0x180
call fcn.0045a4d0
test eax, eax
je 0x445574
mov ebx, eax
and ebx, 0xffffffc0
xor edi, edi
lea ecx, [ebx + 0x40]
mov dword [ebx + 0x3c], eax
inc edi
lea eax, [ebx + 0x48]
mov dword [ebx + 0x40], edi
mov dword [esi + 0x5c], ecx
mov dword [ebx + 0x44], edi
push 0xb8
lea ecx, [esi + 0xc0]
push ecx
push eax
call fcn.00462380
add esp, 0xc
mov eax, dword [esi + 0x3c]
xor edx, edx
lea ecx, [esi + 0x1b8]
mov dword [ebx + 0x100], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x104], eax
mov eax, dword [esi + 0x50]
mov dword [ebx + 0x108], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + 0x10c], eax
mov eax, dword [esi + 0x54]
mov dword [ebx + 0x110], eax
mov eax, dword [esi + 0x70]
mov dword [ebx + 0x114], eax
mov dword [ebx + 0x118], edx
mov byte [ebx + 0x11c], 0
movsd xmm0, qword [ecx - 0x10]
movsd xmm1, qword [ecx - 9]
movsd qword [ebx + 0x11d], xmm0
movsd qword [ebx + 0x124], xmm1
mov dword [ebx + 0x12c], edi
mov edi, dword [esi + 0x78]
movsd xmm0, qword [esi + 0x60]
movsd qword [ebx + 0x130], xmm0
mov eax, dword [esi + 0x68]
mov dword [ebx + 0x138], eax
mov dword [ebx + 0x13c], edx
mov edx, dword [esi + 0x7c]
movsd xmm0, qword [esi + 0x80]
movsd qword [ebx + 0x140], xmm0
mov eax, dword [esi + 0x88]
mov dword [ebx + 0x148], eax
mov eax, dword [esi + 0x74]
mov dword [ecx - 0x10], edx
mov dword [ecx - 0xc], edx
mov ebx, dword [esi + 0x1d8]
mov dword [ecx - 8], eax
mov eax, edi
shl eax, 4
add eax, edx
mov dword [esi + 0x70], eax
mov dword [ecx - 4], eax
mov eax, dword [esi + 0x4c]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov ebx, dword [esi + 0x1dc]
lea eax, [eax + ebx*8]
mov dword [esi + 0x74], eax
mov dword [ecx + 0xc], eax
mov eax, edx
xor edx, edx
test edi, edi
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x18], edx
mov ecx, dword [esi + 0x48]
je 0x444fbe
xor edx, edx
lea edi, [eax + 0x10]
mov dword [esi + 0x1ac], edi
mov bl, byte [eax + 0xc]
cmp bl, 2
je 0x444fbe
mov dword [esi + 0x3c], edx
mov edx, eax
mov eax, dword [eax + 8]
mov dword [esi + 0x50], edi
mov edi, ecx
lea ecx, [esi + 0xcd]
mov byte [esi + 0x40], bl
mov dword [esi + 0xc8], eax
movsd xmm0, qword [edx]
movsd qword [esi + 0xc0], xmm0
mov al, byte [edx + 0xf]
mov byte [ecx + 2], al
movzx eax, word [edx + 0xd]
mov word [ecx], ax
mov ecx, dword [esi + 0x4c]
mov byte [esi + 0xcc], bl
cmp ecx, dword [esi + 0x74]
je 0x444fa8
lea eax, [ecx + 8]
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x54], eax
mov eax, dword [ecx]
mov dword [esi + 0x44], eax
mov al, byte [ecx + 4]
mov byte [esi + 0x4c], al
mov eax, dword [edx + 8]
mov dword [esi + 0x1f8], eax
lea eax, [edx + 0xd]
movsd xmm0, qword [edx]
mov edx, dword [esi + 0x3c]
movsd qword [esi + 0x1f0], xmm0
mov cl, byte [eax + 2]
mov byte [esi + 0x5a], cl
movzx eax, word [eax]
mov word [esi + 0x58], ax
lea eax, [edx + 1]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x1d4], eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x444b32
mov ecx, dword [edi + 0x18]
push edx
push eax
lea eax, [esi + 0xc0]
push eax
call dword [ecx + 0x10]
mov edi, dword [esi + 0x48]
add esp, 0xc
jmp 0x444b3c
mov dword [esi + 0xc0], 0x80000000
mov ecx, dword [esi + 0x5c]
mov edx, dword [edi]
mov ebx, dword [edi + 4]
lock inc dword [ecx]
jle 0x4454d3
mov eax, dword [esi + 0xc8]
lea edi, [esi + 0x208]
movsd xmm0, qword [esi + 0xc0]
mov dword [esi + 0x78], edx
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1f8]
movsd qword [edi], xmm0
mov dword [esi + 0x200], edx
mov dword [esi + 0x204], ebx
movsd xmm0, qword [esi + 0x1f0]
mov dh, byte [esi + 0x5a]
mov dl, byte [esi + 0x4c]
mov dword [edi + 0x1c], eax
mov al, byte [esi + 0x40]
movsd qword [edi + 0x14], xmm0
mov byte [esi + 0x228], al
movzx eax, word [esi + 0x58]
mov byte [edi + 0x23], dh
mov word [edi + 0x21], ax
mov edi, dword [esi + 0x44]
mov dword [esi + 0x214], edi
mov byte [esi + 0x218], dl
mov dword [esi + 0x22c], ecx
mov ecx, dword [esi + 0x3c]
test ecx, ecx
mov dword [esi + 0x230], ecx
jne 0x444c93
mov eax, dword [esi + 0x48]
cmp byte [eax + 0x2c], 0
je 0x444c93
mov ecx, 0x401907
call fcn.00443e3d
test eax, eax
lea ebx, [esi + 0xc0]
jne 0x445050
mov ecx, ebx
lea edx, [esi + 0x200]
call fcn.004438e4
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 0x100
call fcn.0045a4d0
test eax, eax
je 0x44548a
mov edi, eax
and edi, 0xffffffc0
mov dword [edi + 0x3c], eax
add edi, 0x40
push 0xc0
push ebx
push edi
call fcn.00462380
add esp, 0xc
mov ecx, edi
call fcn.00443bb4
mov eax, dword [esi + 0x5c]
cmp dword [eax + 0x108], 0
je 0x44547c
mov edi, dword [eax + 0x104]
push edi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x48fdb0]
test eax, 0x7fffffff
jne 0x444f99
xor ebx, ebx
mov al, byte [edi + 4]
test al, al
jne 0x4454d5
lea eax, [edi + 8]
mov byte [edi + 5], 1
push eax
call dword [sym.imp.kernel32.dll_WakeAllConditionVariable]
movzx edx, bl
mov ecx, edi
call fcn.00455710
mov edi, dword [esi + 0x50]
jmp 0x444f80
cmp dword [esi + 0x208], 0x80000000
jne 0x444caa
mov ecx, ebx
xor edi, edi
mov eax, 0x80000000
jmp 0x444cf1
mov edi, dword [esi + 0x210]
mov dword [esi + 0x3c], ebx
mov ebx, dword [esi + 0x20c]
mov eax, 1
test edi, edi
je 0x444cde
js 0x445501
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, edi
call fcn.0045a4d0
test eax, eax
je 0x445583
push edi
push ebx
mov dword [esi + 0x40], eax
push eax
call fcn.00462380
add esp, 0xc
mov ecx, dword [esi + 0x3c]
mov eax, edi
lea ebx, [esi + 0xc0]
cmp dword [esi + 0x78], 0
jne 0x444db3
mov ecx, dword [0x48fd30]
test ecx, ecx
je 0x444d11
dec ecx
jmp 0x444db3
mov dword [esi + 0x44], eax
mov ecx, ebx
mov edx, str._u_g__C___C_3_fatal_runtime_error:_assertion_failed:_thread_info.stack_guard.get__.is_none____thread_info.thread.get__.is_none___n
push 0xe
call fcn.004553c0
add esp, 4
mov ebx, dword [esi + 0xc0]
cmp ebx, 0x80000000
jne 0x444d3b
lea ebx, [esi + 0xc0]
jmp 0x444da3
mov edx, dword [esi + 0xc4]
lea ecx, [esi + 0x60]
mov dword [esi + 0x3c], edx
push dword [esi + 0xc8]
call fcn.00419c60
add esp, 4
xor ecx, ecx
cmp dword [esi + 0x60], 0
jne 0x444d7a
mov edx, dword [esi + 0x64]
lea ecx, [esi + 0x60]
push dword [esi + 0x68]
call fcn.0041c200
add esp, 4
xor ecx, ecx
cmp byte [esi + 0x60], 0
mov eax, dword [esi + 0x64]
sete cl
test ebx, ebx
je 0x444d99
push dword [esi + 0x3c]
push 0
push dword [0x48fd58]
mov dword [esi + 0x3c], eax
mov ebx, ecx
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x3c]
mov ecx, ebx
test ecx, ecx
lea ebx, [esi + 0xc0]
jne 0x444da8
mov eax, 0x200000
mov ecx, eax
inc eax
mov dword [0x48fd30], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], ecx
xor ecx, ecx
cmp eax, 0x80000000
je 0x444e23
cmp edi, 8
mov dword [esi + 0x44], eax
jae 0x444de1
mov eax, dword [esi + 0x40]
test edi, edi
je 0x444df1
xor edx, edx
cmp byte [eax + edx], 0
je 0x444df7
inc edx
cmp edi, edx
jne 0x444dd0
xor eax, eax
mov edx, edi
jmp 0x444dfa
mov edx, dword [esi + 0x40]
xor ecx, ecx
push edi
call fcn.0041b8e0
add esp, 4
jmp 0x444dfa
xor edx, edx
xor eax, eax
jmp 0x444dfa
xor eax, eax
inc eax
test eax, eax
jne 0x44553c
mov eax, dword [esi + 0x44]
mov ecx, ebx
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], edi
call fcn.00414490
mov ecx, eax
call fcn.0044e830
lock inc dword [eax]
jle 0x4454d3
mov ebx, eax
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 0x18
call fcn.0045a4d0
test eax, eax
je 0x445499
mov edi, eax
xor eax, eax
mov dword [esi + 0x40], ebx
inc eax
mov dword [edi], eax
mov dword [edi + 4], eax
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [esi + 0x60], edi
lock inc dword [edi]
jle 0x4454d3
xor ecx, ecx
call fcn.00458d10
mov ebx, eax
test eax, eax
je 0x444e87
lock inc dword [ebx]
jle 0x4454d3
mov ecx, ebx
jmp 0x444e89
xor ecx, ecx
call fcn.00458d10
test eax, eax
je 0x444e9e
lock dec dword [eax]
jne 0x444e9e
mov ecx, eax
call fcn.00415c90
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + 8]
mov dword [esi + 0x44], eax
test ecx, ecx
je 0x444eb5
lock inc dword [ecx + 0xc]
jle 0x445506
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 0x40
call fcn.0045a4d0
test eax, eax
je 0x4454a8
mov ecx, eax
mov eax, dword [esi + 0x40]
mov dword [ecx], eax
mov eax, ecx
mov dword [ecx + 4], edi
mov dword [ecx + 8], ebx
add eax, 0xc
push 0x34
mov edi, ecx
lea ecx, [esi + 0x200]
push ecx
push eax
call fcn.00462380
add esp, 0xc
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 8
call fcn.0045a4d0
test eax, eax
je 0x4454b7
mov dword [eax], edi
mov ebx, eax
mov dword [eax + 4], 0x47c264
xor eax, eax
push eax
push 0x10000
push ebx
push 0x459b80
push dword [esi + 0x3c]
push eax
call dword [sym.imp.kernel32.dll_CreateThread]
mov edi, dword [esi + 0x50]
test eax, eax
je 0x445070
mov ebx, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x80], ebx
mov dword [esi + 0x88], eax
mov dword [esi + 0x84], ecx
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
lock dec dword [ebx]
jne 0x444f6a
mov ecx, dword [esi + 0x80]
call fcn.00420075
mov eax, dword [esi + 0x84]
lock dec dword [eax]
jne 0x444f80
lea ecx, [esi + 0x84]
call fcn.00443e6b
mov eax, dword [esi + 0x54]
cmp edi, dword [esi + 0x70]
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x4c], eax
mov eax, edi
jne 0x444a6d
jmp 0x444fbe
call fcn.00471dd0
mov ebx, eax
xor bl, 1
jmp 0x444c68
mov eax, dword [esi + 0xc0]
lock dec dword [eax]
jne 0x444fbe
lea ecx, [esi + 0xc0]
call fcn.0044309d
lea ecx, [esi + 0x1a8]
call fcn.004440dc
lea ecx, [esi + 0x1b8]
call fcn.0044305d
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x5c]
mov dword [eax + 4], ecx
mov byte [eax], 6
mov edi, dword [esi + 0x48]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
call fcn.00401c31
mov eax, edi
mov edi, dword [edi + 0x14]
test edi, edi
je 0x445024
mov ebx, dword [eax + 0x18]
push edi
call dword [ebx]
mov eax, dword [esi + 0x48]
add esp, 4
cmp dword [ebx + 4], 0
je 0x445024
cmp dword [ebx + 8], 9
jb 0x445012
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov edi, eax
call fcn.00401c31
mov ecx, dword [edi + 0x24]
mov edx, dword [edi + 0x28]
call fcn.00401c31
mov eax, dword [esi + 0x2a0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x6c]
lea ecx, [esi + 0x200]
mov dword [eax + 4], 0
mov dword [eax], 5
call fcn.004430eb
jmp 0x4453ec
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esi + 0x50], ebx
mov dword [esi + 0x2a8], 1
mov dword [esi + 0x4c], eax
push eax
mov dword [esi + 0x3c], ecx
call dword [ecx]
add esp, 4
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x40]
cmp dword [eax + 4], 0
je 0x4453ab
cmp dword [eax + 8], 9
jae 0x445396
mov eax, dword [esi + 0x4c]
jmp 0x44539c
lea edi, [esi + 0xc0]
xor edx, edx
mov byte [esi + 0x40], al
mov ecx, edi
push ebx
call fcn.00470d39
add esp, 4
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x14]
sub eax, edx
cmp eax, ebx
jb 0x445454
cmp byte [esi + 0x40], 0
je 0x4450f2
lea ecx, [esi + 0x200]
call fcn.00442e60
mov edi, dword [esi + 0x200]
jmp 0x445181
lea edi, [esi + 0x200]
mov edx, 0x40
mov ecx, edi
call fcn.00442f37
mov ecx, edi
call fcn.00442f89
mov ecx, dword [esi + 0x204]
mov edx, 0x40
mov dword [esi + 0x3c], ecx
call fcn.00442fe0
mov edi, eax
mov al, byte [0x48fdb4]
xor ecx, ecx
mov edx, 0x100
call fcn.0045a4d0
test eax, eax
je 0x44548a
mov ecx, eax
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
xor eax, eax
inc eax
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [ecx + 0x80], edi
lea edi, [ecx + 0x40]
mov dword [ecx + 0xc0], eax
mov dword [ecx + 0xc4], eax
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x200], edi
mov dword [esi + 0x204], ecx
mov dword [esi + 0x208], 0x40
mov byte [esi + 0x20c], 1
lock inc dword [edi]
jle 0x4454d3
mov edx, dword [esi + 0xc8]
mov al, byte [esi + 0x20c]
movsd xmm0, qword [esi + 0x200]
movsd xmm1, qword [esi + 0x208]
cmp edx, dword [esi + 0xc0]
mov byte [esi + 0x3c], al
movsd qword [esi + 0x1a8], xmm0
movsd qword [esi + 0x1b0], xmm1
jne 0x4451d2
lea ecx, [esi + 0xc0]
call fcn.00442ef3
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc4]
movsd xmm0, qword [esi + 0x1a8]
movsd xmm1, qword [esi + 0x1b0]
mov ecx, edx
inc edx
shl ecx, 4
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esi + 0xc8], edx
mov edx, dword [esi + 0xd4]
cmp edx, dword [esi + 0xcc]
jne 0x44521e
lea ecx, [esi + 0xcc]
call fcn.00442f15
mov edx, dword [esi + 0xd4]
mov eax, dword [esi + 0xd0]
mov cl, byte [esi + 0x3c]
mov dword [eax + edx*8], edi
mov byte [eax + edx*8 + 4], cl
inc edx
dec ebx
mov dword [esi + 0xd4], edx
jne 0x4450d6
jmp 0x444665
lea edi, [esi + 0xc0]
xor edx, edx
mov ecx, edi
push ebx
call fcn.00470d39
add esp, 4
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x14]
sub eax, edx
cmp eax, ebx
jb 0x445468
mov edi, ebx
lea ecx, [esi + 0x200]
call fcn.00442e60
mov ebx, dword [esi + 0x200]
lock inc dword [ebx]
jle 0x4454d3
mov edx, dword [esi + 0xc8]
mov al, byte [esi + 0x20c]
movsd xmm0, qword [esi + 0x200]
movsd xmm1, qword [esi + 0x208]
cmp edx, dword [esi + 0xc0]
mov byte [esi + 0x3c], al
movsd qword [esi + 0x1a8], xmm0
movsd qword [esi + 0x1b0], xmm1
jne 0x4452c8
lea ecx, [esi + 0xc0]
call fcn.00442ef3
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc4]
movsd xmm0, qword [esi + 0x1a8]
movsd xmm1, qword [esi + 0x1b0]
mov ecx, edx
inc edx
shl ecx, 4
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov dword [esi + 0xc8], edx
mov edx, dword [esi + 0xd4]
cmp edx, dword [esi + 0xcc]
jne 0x445314
lea ecx, [esi + 0xcc]
call fcn.00442f15
mov edx, dword [esi + 0xd4]
mov ecx, dword [esi + 0xd0]
mov al, byte [esi + 0x3c]
mov dword [ecx + edx*8], ebx
mov byte [ecx + edx*8 + 4], al
inc edx
dec edi
mov dword [esi + 0xd4], edx
jne 0x445266
mov edi, dword [esi + 0xcc]
mov ebx, dword [esi + 0x54]
jmp 0x4446c7
lea ebx, [esi + 0xc0]
mov edx, dword [ebx + 8]
mov ecx, ebx
mov dword [esi + 0x40], edx
push dword [ebx + 0xc]
mov dword [esi + 0x3c], eax
call fcn.0041c200
add esp, 4
mov al, byte [ebx]
mov ebx, dword [ebx + 4]
cmp dword [esi + 0x3c], 0
je 0x44537e
push dword [esi + 0x40]
push 0
push dword [0x48fd58]
mov byte [esi + 0x3c], al
call dword [sym.imp.kernel32.dll_HeapFree]
mov al, byte [esi + 0x3c]
mov edx, dword [esi + 0x48]
test al, al
jne 0x4445d0
test ebx, ebx
jne 0x444614
jmp 0x4445d0
mov eax, dword [esi + 0x4c]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esi + 0x50]
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, dword [esi + 0x44]
mov edi, eax
lock dec dword [ecx]
jne 0x4453d4
lea ecx, [esi + 0x60]
call fcn.00443e6b
lock dec dword [ebx]
jne 0x4453e0
mov ecx, ebx
call fcn.00420075
mov eax, dword [esi + 0x6c]
mov dword [eax + 4], edi
mov dword [eax], 0
lea ecx, [esi + 0x1a8]
call fcn.004440dc
lea ecx, [esi + 0x1b8]
call fcn.0044305d
mov edi, dword [esi + 0x5c]
lea ecx, [edi + 0x40]
call fcn.0044563a
lock dec dword [edi]
jne 0x444fe0
mov ecx, edi
call fcn.0044313b
jmp 0x444fe0
mov edx, dword [esi + 0x48]
test ebx, ebx
jne 0x444614
xorps xmm0, xmm0
lea eax, [esi + 0xc0]
mov dword [esi + 0xe0], 0
movaps xmmword [esi + 0xd0], xmm0
movaps xmmword [esi + 0xc0], xmm0
push eax
jmp 0x4445ec
lea ecx, [esi + 0xcc]
push ebx
call fcn.00470d5d
add esp, 4
jmp 0x4450d6
lea ecx, [esi + 0xcc]
push ebx
call fcn.00470d5d
add esp, 4
jmp 0x445264
xor ecx, ecx
xor edx, edx
push 0x47c438
call fcn.0046e960
mov ecx, 0x40
mov edx, 0xc0
call fcn.0046d190
mov ecx, 4
mov edx, 0x18
call fcn.0046d190
mov ecx, 4
mov edx, 0x40
call fcn.0046d190
mov ecx, 4
mov edx, 8
mov dword [esi + 0x3c], edi
mov dword [esi + 0x2a8], 0
call fcn.0046d190
ud2
mov dword [esi + 0xc0], edi
mov byte [esi + 0xc4], bl
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x47c374
push 0x47c2a4
lea eax, [esi + 0xc0]
push eax
call fcn.0046ece0
call fcn.00414380
add ecx, 8
xor edx, edx
xor edi, edi
call fcn.00451340
lea ecx, [esi + 0xc0]
mov edx, 0x47d7e0
mov dword [ecx], str.too_many_running_threads_in_thread_scope
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], edi
mov dword [ecx + 8], 0x486600
mov dword [ecx + 0xc], edi
call fcn.0046e8d0
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc8], edi
mov dword [esi + 0xcc], edx
mov ecx, str.thread_name_may_not_contain_interior_null_bytes6_voCu____eN_Y____T___5qW_h___qPX__r55_kzw5_K__Lhp6sn_JQJfd_L_c__6______j__e6_a
mov edx, 0x2f
push 0x47c254
push 0x47c294
push ebx
call fcn.0046ece0
mov ecx, 0x40
mov edx, 0x140
call fcn.0046d190
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.0046d190
mov edx, dword [esi + 0x3c]
mov ecx, 0x40
call fcn.0046d190
push ebp
sub esp, 0x18
lea esi, [ebp - 0x2ac]
mov ebp, dword [esi + 0x298]
mov eax, dword [esi + 0x3c]
cmp dword [eax + 4], 0
je 0x4455d6
mov eax, dword [esi + 0x3c]
cmp dword [eax + 8], 9
jb 0x4455c5
mov eax, dword [esi + 0x4c]
mov eax, dword [eax - 4]
mov dword [esi + 0x4c], eax
push dword [esi + 0x4c]
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esi + 0x50]
push 0
push dword [0x48fd58]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0x18
pop ebp
ret