Function at 0x140020af0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rax, qword [sym.imp.python312.dll_PyExc_GeneratorExit]
mov rsi, rdx
mov rdx, qword [r8]
mov rdi, rcx
mov rcx, qword [rax]
mov rbx, r8
mov rax, qword [rdx + 8]
test byte [rax + 0xab], 0x40
cmove rax, rdx
cmp rcx, rax
je 0x140020c60
mov rdx, qword [rax + 8]
mov r11d, dword [rdx + 0xa8]
test r11d, r11d
js 0x140020c08
mov rax, qword [rsi + 8]
cmp rax, qword [sym.imp.python312.dll_PyCoro_Type]
je 0x140020d08
cmp rax, qword [sym.imp.python312.dll_PyGen_Type]
je 0x140020d08
lea rdx, [0x140061440]
cmp rax, rdx
je 0x140020db0
lea rdx, [0x140060c20]
cmp rax, rdx
je 0x140020dd0
lea rdx, [0x140060a80]
cmp rax, rdx
je 0x140020d20
mov rax, qword [0x14006adf0]
mov rcx, rsi
mov rdx, qword [rax + 0x268]
call qword [sym.imp.python312.dll_PyObject_GetAttr]
mov rsi, rax
test rax, rax
je 0x140020d60
mov rdx, qword [rbx]
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.python312.dll_PyObject_CallFunctionObjArgs]
mov rdi, rax
mov rax, qword [rsi]
test eax, eax
js 0x140020bd9
sub rax, 1
mov qword [rsi], rax
jne 0x140020bd9
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
mov rcx, qword [rbx]
mov rax, qword [rcx]
test eax, eax
js 0x140020bf3
sub rax, 1
mov qword [rcx], rax
jne 0x140020bf3
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
mov rax, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
test byte [rax + 0xab], 0x40
je 0x140020b3c
mov rdx, qword [rax + 0x158]
test rdx, rdx
je 0x140020d40
mov r8, qword [rdx + 0x10]
test r8, r8
jle 0x140020b3c
xor eax, eax
jmp 0x140020c4d
add rax, 1
cmp r8, rax
je 0x140020b3c
cmp rcx, qword [rdx + rax*8 + 0x18]
jne 0x140020c40
nop word cs:[rax + rax]
nop
mov r12, qword [0x14006adf0]
mov rcx, rsi
mov rdx, qword [r12 + 0x218]
call qword [sym.imp.python312.dll_PyObject_GetAttr]
mov rbp, rax
test rax, rax
je 0x140020e50
mov rdx, qword [r12]
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.python312.dll_PyObject_Call]
mov rsi, rax
mov rax, qword [rbp]
test eax, eax
js 0x140020cad
sub rax, 1
mov qword [rbp], rax
je 0x140020eb0
test rsi, rsi
je 0x140020da3
mov rax, qword [rsi]
test eax, eax
js 0x140020cca
sub rax, 1
mov qword [rsi], rax
je 0x140020ec0
mov rcx, qword [rdi + 0x60]
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
test rcx, rcx
je 0x140020cf1
mov rax, qword [rcx]
test eax, eax
js 0x140020cf1
sub rax, 1
mov qword [rcx], rax
jne 0x140020cf1
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
xor edi, edi
mov rax, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.1400448e0
mov rdx, qword [rsi + 0x10]
mov r9, rbx
mov r8d, 1
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.140028760
mov rax, qword [rax + 0x100]
test rax, rax
je 0x140020f70
cmp rcx, rax
jne 0x140020d40
jmp 0x140020c60
mov rax, qword [sym.imp.python312.dll_PyExc_AttributeError]
mov rcx, qword [rdi + 0x60]
mov r8, qword [rax]
test rcx, rcx
je 0x14005e10b
mov rdx, qword [rcx + 8]
mov rax, qword [rdx + 8]
test byte [rax + 0xab], 0x40
cmove rax, rdx
cmp r8, rax
je 0x140020e20
mov r9, qword [rax + 8]
mov r9d, dword [r9 + 0xa8]
test r9d, r9d
js 0x140020de8
mov rcx, qword [rbx]
jmp 0x140020cda
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.140020480
mov r9, rbx
mov r8d, 1
mov rdx, rsi
jmp 0x140020d2d
test byte [rax + 0xab], 0x40
je 0x140020da3
mov r9, qword [rax + 0x158]
test r9, r9
je 0x140020edd
mov r10, qword [r9 + 0x10]
test r10, r10
jle 0x140020da3
xor eax, eax
jmp 0x140020e19
add rax, 1
cmp r10, rax
je 0x140020da3
cmp r8, qword [r9 + rax*8 + 0x18]
jne 0x140020e10
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
mov rax, qword [rcx]
test eax, eax
js 0x140020cf1
sub rax, 1
mov qword [rcx], rax
jne 0x140020cf1
call qword [rdx + 0x30]
xor edi, edi
jmp 0x140020cf3
mov rcx, qword [rdi + 0x60]
test rcx, rcx
je 0x140020ecf
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x140020f50
mov rax, qword [sym.imp.python312.dll_PyExc_AttributeError]
mov r8, qword [rax]
mov rax, qword [rdx + 8]
test byte [rax + 0xab], 0x40
cmove rax, rdx
cmp r8, rax
je 0x140020f50
mov rdx, qword [rax + 8]
mov r10d, dword [rdx + 0xa8]
test r10d, r10d
js 0x140020f00
mov rcx, rsi
call qword [sym.imp.python312.dll_PyErr_WriteUnraisable]
jmp 0x140020cca
mov rax, qword [rbp + 8]
mov rcx, rbp
call qword [rax + 0x30]
jmp 0x140020cad
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x140020cca
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
xor edi, edi
jmp 0x140020cf3
mov rax, qword [rax + 0x100]
test rax, rax
je 0x140020f82
cmp r8, rax
jne 0x140020edd
jmp 0x140020e20
test byte [rax + 0xab], 0x40
je 0x140020e98
mov rdx, qword [rax + 0x158]
test rdx, rdx
je 0x140020f5c
mov r9, qword [rdx + 0x10]
test r9, r9
jle 0x140020e98
xor eax, eax
jmp 0x140020f3d
add rax, 1
cmp r9, rax
je 0x140020e98
cmp r8, qword [rdx + rax*8 + 0x18]
jne 0x140020f30
nop word cs:[rax + rax]
nop
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
jmp 0x140020cda
mov rax, qword [rax + 0x100]
test rax, rax
je 0x140020f94
cmp r8, rax
jne 0x140020f5c
jmp 0x140020f50
cmp rcx, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x140020c60
jmp 0x140020b3c
cmp r8, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x140020e20
jmp 0x140020da3
cmp r8, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x140020f50
jmp 0x140020e98
mov rax, qword [8]
ud2