Function at 0x140021d70
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 0x140021ee0
mov rdx, qword [rax + 8]
mov r11d, dword [rdx + 0xa8]
test r11d, r11d
js 0x140021e88
mov rax, qword [rsi + 8]
cmp rax, qword [sym.imp.python312.dll_PyCoro_Type]
je 0x140021f88
cmp rax, qword [sym.imp.python312.dll_PyGen_Type]
je 0x140021f88
cmp rax, qword [0x140061c40]
je 0x140022030
cmp rax, qword [0x140061c10]
mov r9, rbx
mov r8d, 1
mov rdx, rsi
je 0x140021faa
cmp rax, qword [0x140061c00]
je 0x140021fa0
mov rax, qword [0x1400620e0]
mov rcx, rsi
mov rdx, qword [rax + 0x268]
call qword [sym.imp.python312.dll_PyObject_GetAttr]
mov rsi, rax
test rax, rax
je 0x140021fe0
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 0x140021e5c
sub rax, 1
mov qword [rsi], rax
jne 0x140021e5c
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
mov rcx, qword [rbx]
mov rax, qword [rcx]
test eax, eax
js 0x140021e76
sub rax, 1
mov qword [rcx], rax
jne 0x140021e76
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 0x140021dbc
mov rdx, qword [rax + 0x158]
test rdx, rdx
je 0x140021fc0
mov r8, qword [rdx + 0x10]
test r8, r8
jle 0x140021dbc
xor eax, eax
jmp 0x140021ecd
add rax, 1
cmp r8, rax
je 0x140021dbc
cmp rcx, qword [rdx + rax*8 + 0x18]
jne 0x140021ec0
nop word cs:[rax + rax]
nop
mov r12, qword [0x1400620e0]
mov rcx, rsi
mov rdx, qword [r12 + 0x218]
call qword [sym.imp.python312.dll_PyObject_GetAttr]
mov rbp, rax
test rax, rax
je 0x1400220c0
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 0x140021f2d
sub rax, 1
mov qword [rbp], rax
je 0x140022120
test rsi, rsi
je 0x140022023
mov rax, qword [rsi]
test eax, eax
js 0x140021f4a
sub rax, 1
mov qword [rsi], rax
je 0x140022130
mov rcx, qword [rdi + 0x60]
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
test rcx, rcx
je 0x140021f71
mov rax, qword [rcx]
test eax, eax
js 0x140021f71
sub rax, 1
mov qword [rcx], rax
jne 0x140021f71
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.14003f8b0
mov rdx, qword [rsi + 0x10]
mov r8d, 1
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.140020fc0
mov rax, qword [rax + 0x100]
test rax, rax
je 0x1400221e0
cmp rcx, rax
jne 0x140021fc0
jmp 0x140021ee0
mov rax, qword [sym.imp.python312.dll_PyExc_AttributeError]
mov rcx, qword [rdi + 0x60]
mov r8, qword [rax]
test rcx, rcx
je 0x140055efc
mov rdx, qword [rcx + 8]
mov rax, qword [rdx + 8]
test byte [rax + 0xab], 0x40
cmove rax, rdx
cmp r8, rax
je 0x140022090
mov r9, qword [rax + 8]
mov r9d, dword [r9 + 0xa8]
test r9d, r9d
js 0x140022050
mov rcx, qword [rbx]
jmp 0x140021f5a
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.1400216f0
test byte [rax + 0xab], 0x40
je 0x140022023
mov r9, qword [rax + 0x158]
test r9, r9
je 0x14002214d
mov r10, qword [r9 + 0x10]
test r10, r10
jle 0x140022023
xor eax, eax
jmp 0x140022089
add rax, 1
cmp r10, rax
je 0x140022023
cmp r8, qword [r9 + rax*8 + 0x18]
jne 0x140022080
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
mov rax, qword [rcx]
test eax, eax
js 0x140021f71
sub rax, 1
mov qword [rcx], rax
jne 0x140021f71
call qword [rdx + 0x30]
xor edi, edi
jmp 0x140021f73
mov rcx, qword [rdi + 0x60]
test rcx, rcx
je 0x14002213f
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x1400221c0
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 0x1400221c0
mov rdx, qword [rax + 8]
mov r10d, dword [rdx + 0xa8]
test r10d, r10d
js 0x140022170
mov rcx, rsi
call qword [sym.imp.python312.dll_PyErr_WriteUnraisable]
jmp 0x140021f4a
mov rax, qword [rbp + 8]
mov rcx, rbp
call qword [rax + 0x30]
jmp 0x140021f2d
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x140021f4a
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
xor edi, edi
jmp 0x140021f73
mov rax, qword [rax + 0x100]
test rax, rax
je 0x1400221f2
cmp r8, rax
jne 0x14002214d
jmp 0x140022090
test byte [rax + 0xab], 0x40
je 0x140022108
mov rdx, qword [rax + 0x158]
test rdx, rdx
je 0x1400221cc
mov r9, qword [rdx + 0x10]
test r9, r9
jle 0x140022108
xor eax, eax
jmp 0x1400221ad
add rax, 1
cmp r9, rax
je 0x140022108
cmp r8, qword [rdx + rax*8 + 0x18]
jne 0x1400221a0
nop word cs:[rax + rax]
nop
mov rax, qword [rbx]
mov qword [rdi + 0x60], rax
jmp 0x140021f5a
mov rax, qword [rax + 0x100]
test rax, rax
je 0x140022204
cmp r8, rax
jne 0x1400221cc
jmp 0x1400221c0
cmp rcx, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x140021ee0
jmp 0x140021dbc
cmp r8, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x140022090
jmp 0x140022023
cmp r8, qword [sym.imp.python312.dll_PyBaseObject_Type]
je 0x1400221c0
jmp 0x140022108
mov rax, qword [8]
ud2