Function at 0x18010fb00
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
xor eax, eax
mov rsi, rdx
mov edi, eax
mov dword [rbp + 0xe8], eax
mov qword [rsp + 0x68], rax
test rcx, rcx
je 0x1801108e4
test rdx, rdx
je 0x1801108e4
mov qword [rsp + 0x188], r15
call sym.extension.dll_PyUnicodeUCS2_FromObject
mov r15, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1801108a3
mov qword [rsp + 0x1a8], rbx
mov rbx, qword [rax + 0x18]
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x198], r13
mov qword [rsp + 0x190], r14
mov r14, qword [rax + 0x10]
lea r13, [r14 + 0x64]
mov rcx, r13
mov qword [rsp + 0x58], r13
mov qword [rbp - 0x80], r13
call fcn.180110ca0
mov qword [rsp + 0x78], rax
test rax, rax
je 0x18011085f
mov rcx, qword [rsi + 8]
mov r12, qword [rax + 0x18]
test dword [rcx + 0xa8], 0x4000000
mov qword [rsp + 0x48], r12
je 0x18010fbd6
mov rcx, rsi
call sym.extension.dll_PyTuple_Size
xor ecx, ecx
mov rdi, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x70], rcx
jmp 0x18010fbe8
or rdi, 0xffffffffffffffff
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x40], rdi
mov rcx, qword [rsi + 8]
mov rax, qword [rcx + 0x70]
test rax, rax
je 0x18010fc2b
cmp qword [rax + 8], 0
je 0x18010fc2b
test dword [rcx + 0xa8], 0x4000000
jne 0x18010fc2b
lea rdx, sym.extension.dll_PyBaseString_Type
cmp rcx, rdx
je 0x18010fc2b
call sym.extension.dll_PyType_IsSubtype
mov rdx, qword [rsp + 0x68]
test eax, eax
cmove rdx, rsi
mov qword [rsp + 0x68], rdx
jmp 0x18010fc30
mov rdx, qword [rsp + 0x68]
dec r14
js 0x1801107f2
cmp word [rbx], 0x25
movabs r10, 0x6666666666666667
movabs r9, 0x7fffffffffffffff
je 0x18010fcbc
dec r13
mov qword [rsp + 0x58], r13
jns 0x18010fc9c
mov rdi, qword [rbp - 0x80]
lea r13, [r14 + 0x64]
lea rcx, [rsp + 0x78]
add rdi, r13
mov rdx, rdi
mov qword [rbp - 0x80], rdi
call fcn.180110ea0
test eax, eax
js 0x180110837
mov rax, qword [rsp + 0x78]
mov rcx, rdi
mov rax, qword [rax + 0x18]
sub rcx, r13
dec r13
lea r12, [rax + rcx*2]
mov qword [rsp + 0x58], r13
movzx eax, word [rbx]
mov rdi, qword [rsp + 0x40]
add r12, 2
mov word [r12 - 2], ax
mov qword [rsp + 0x48], r12
add rbx, 2
jmp 0x18011067b
xor r12d, r12d
add rbx, 2
mov qword [rsp + 0x60], 0xffffffffffffffff
cmp word [rbx], 0x28
mov ecx, r12d
mov r15d, r12d
mov dword [rbp + 0xd0], r12d
mov dword [rbp + 0xe0], 0xffffffff
mov qword [rbp - 0x78], r12
mov qword [rsp + 0x38], rcx
jne 0x18010fdd4
lea eax, [r12 + 1]
test rdx, rdx
je 0x1801106ab
add rbx, 2
dec r14
mov rdi, rbx
nop
dec r14
js 0x180110693
movzx ecx, word [rbx]
cmp cx, 0x29
jne 0x18010fd26
dec eax
jmp 0x18010fd2e
cmp cx, 0x28
jne 0x18010fd2e
inc eax
add rbx, 2
test eax, eax
jg 0x18010fd10
mov rdx, rbx
mov rcx, rdi
sub rdx, rdi
sar rdx, 1
dec rdx
call sym.extension.dll_PyUnicodeUCS2_FromUnicode
mov rdi, rax
test rax, rax
je 0x180110837
cmp dword [rbp + 0xe8], r12d
je 0x18010fd75
dec qword [rsi]
jne 0x18010fd6e
mov rdx, qword [rsi + 8]
mov rcx, rsi
call qword [rdx + 0x30]
mov dword [rbp + 0xe8], r12d
mov rcx, qword [rsp + 0x68]
mov rdx, rdi
call sym.extension.dll_PyObject_GetItem
dec qword [rdi]
mov rsi, rax
mov qword [rbp + 0xd8], rax
jne 0x18010fd9b
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
test rsi, rsi
je 0x180110837
or rdi, 0xffffffffffffffff
mov dword [rbp + 0xe8], 1
mov qword [rsp + 0x70], 0xfffffffffffffffe
movabs r9, 0x7fffffffffffffff
movabs r10, 0x6666666666666667
mov qword [rsp + 0x40], rdi
dec r14
js 0x1801100c8
nop dword [rax]
movzx esi, word [rbx]
add rbx, 2
mov eax, esi
cmp esi, 0x20
je 0x18010fe1a
cmp eax, 0x23
je 0x18010fe14
cmp eax, 0x2b
je 0x18010fe0e
cmp eax, 0x2d
je 0x18010fe08
cmp eax, 0x30
jne 0x18010fe23
or r15d, 0x10
jmp 0x18010fe1e
or r15d, 1
jmp 0x18010fe1e
or r15d, 2
jmp 0x18010fe1e
or r15d, 8
jmp 0x18010fe1e
or r15d, 4
dec r14
jns 0x18010fde0
mov dword [rbp + 0xd0], r15d
mov dword [rbp + 0xd0], r15d
mov dword [rbp + 0xd0], r15d
mov dword [rbp + 0xd0], r15d
mov qword [rsp + 0x50], r14
mov dword [rbp + 0xd0], r15d
cmp si, 0x2a
jne 0x18010fee5
mov r13, qword [rbp + 0xd8]
lea r8, [rsp + 0x70]
mov rdx, rdi
mov rcx, r13
call fcn.180119540
mov qword [rbp - 0x78], rax
test rax, rax
je 0x180110837
mov rcx, qword [rax + 8]
test dword [rcx + 0xa8], 0x800000
je 0x1801106c3
mov rcx, rax
call sym.extension.dll_PyInt_AsSsize_t
mov r12, rax
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
jne 0x18010feb3
call sym.extension.dll_PyErr_Occurred
test rax, rax
jne 0x180110837
jmp 0x18010feb8
test rax, rax
jns 0x18010fecb
or r15d, 1
neg r12
mov qword [rsp + 0x60], r12
mov dword [rbp + 0xd0], r15d
dec r14
mov qword [rsp + 0x50], r14
js 0x1801100c8
movzx esi, word [rbx]
add rbx, 2
jmp 0x18010ff6e
lea eax, [rsi - 0x30]
cmp ax, 9
ja 0x180110010
movzx eax, si
sub eax, 0x30
dec r14
movsxd r12, eax
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x60], r12
js 0x18010ff67
nop word [rax + rax]
movzx esi, word [rbx]
add rbx, 2
lea eax, [rsi - 0x30]
cmp ax, 9
ja 0x18011000d
movzx eax, si
mov rcx, r9
sub eax, 0x30
movsxd rdi, eax
mov rax, r10
sub rcx, rdi
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12, rdx
jg 0x1801106db
lea rax, [r12 + r12*4]
dec r14
lea r12, [rdi + rax*2]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x60], r12
jns 0x18010ff10
mov r13, qword [rbp + 0xd8]
xor r12d, r12d
cmp si, 0x2e
jne 0x1801100e0
dec r14
mov edi, r12d
mov dword [rbp + 0xe0], r12d
mov qword [rsp + 0x50], r14
js 0x1801100c8
movzx esi, word [rbx]
add rbx, 2
cmp si, 0x2a
jne 0x180110048
mov r12, qword [rsp + 0x40]
lea r8, [rsp + 0x70]
mov rcx, r13
mov rdx, r12
call fcn.180119540
mov r8, rax
mov qword [rbp - 0x78], rax
test rax, rax
je 0x180110837
mov rax, qword [rax + 8]
test dword [rax + 0xa8], 0x800000
je 0x1801106c3
mov rcx, r8
call sym.extension.dll__PyInt_AsInt
mov r13d, eax
mov dword [rbp + 0xe0], eax
cmp eax, 0xffffffff
jne 0x18011001c
call sym.extension.dll_PyErr_Occurred
test rax, rax
jne 0x180110837
xor ecx, ecx
mov edi, ecx
mov dword [rbp + 0xe0], ecx
jmp 0x18011002e
xor r12d, r12d
mov r13, qword [rbp + 0xd8]
jmp 0x18010ff71
test eax, eax
jns 0x18011002c
xor ecx, ecx
mov edi, ecx
mov dword [rbp + 0xe0], ecx
jmp 0x18011002e
mov edi, eax
dec r14
mov qword [rsp + 0x50], r14
js 0x1801100c8
movzx esi, word [rbx]
add rbx, 2
jmp 0x1801100eb
lea eax, [rsi - 0x30]
cmp ax, 9
ja 0x1801100e6
movzx r13d, si
sub r13d, 0x30
dec r14
mov qword [rsp + 0x50], r14
mov dword [rbp + 0xe0], r13d
js 0x1801100c8
nop
movzx esi, word [rbx]
add rbx, 2
lea eax, [rsi - 0x30]
cmp ax, 9
ja 0x1801100e0
movzx edi, si
mov ecx, 0x8000002f
mov eax, 0x66666667
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r13d, edx
jg 0x1801106f3
lea eax, [r13*4]
add eax, r13d
dec r14
lea r13d, [rax - 0x18]
mov qword [rsp + 0x50], r14
lea r13d, [rdi + r13*2]
mov dword [rbp + 0xe0], r13d
jns 0x180110070
mov rcx, qword [sym.extension.dll_PyExc_ValueError]
lea rdx, str.incomplete_format
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
mov edi, dword [rbp + 0xe0]
mov r12, qword [rsp + 0x40]
test r14, r14
js 0x1801100c8
lea eax, [rsi - 0x4c]
cmp ax, 0x20
ja 0x18011011a
movabs rcx, 0x110000001
bt rcx, rax
jae 0x18011011a
dec r14
mov qword [rsp + 0x50], r14
js 0x1801100c8
movzx esi, word [rbx]
add rbx, 2
cmp si, 0x25
je 0x180110146
mov rcx, qword [rbp + 0xd8]
lea r8, [rsp + 0x70]
mov rdx, r12
call fcn.180119540
mov r14, rax
mov qword [rbp - 0x78], rax
test rax, rax
je 0x180110837
jmp 0x18011014a
mov r14, qword [rbp - 0x78]
xor eax, eax
movzx r9d, si
lea r12d, [rax + 0x20]
movzx r13d, ax
lea eax, [r9 - 0x25]
cmp eax, 0x53
ja case.0x180110180.38
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x11091c]
mov ecx, dword [rdx + rax*4 + 0x110904]
add rcx, rdx
jmp rcx
mov eax, 0x25
lea r14, [rbp - 0x70]
lea r15d, [rax - 0x24]
mov word [rbp - 0x70], ax
jmp 0x18011040a
lea rax, sym.extension.dll_PyUnicode_Type
cmp qword [r14 + 8], rax
jne 0x1801101b8
cmp si, 0x73
jne 0x1801101c8
inc qword [r14]
mov rdx, r14
mov qword [rsp + 0x38], rdx
jmp 0x180110237
cmp si, 0x73
jne 0x1801101c8
mov rcx, r14
call sym.extension.dll_PyObject_Unicode
jmp 0x1801101d0
mov rcx, r14
call sym.extension.dll_PyObject_Repr
mov rdx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180110837
mov rax, qword [rax + 8]
mov ecx, dword [rax + 0xa8]
bt ecx, 0x1c
jb 0x180110237
bt ecx, 0x1b
jae 0x18011070b
lea rcx, [rdx + 0x20]
mov rdx, qword [rdx + 0x10]
lea r9, str.strict
xor r8d, r8d
call sym.extension.dll_PyUnicodeUCS2_Decode
mov rcx, qword [rsp + 0x38]
dec qword [rcx]
mov rdi, rax
jne 0x180110226
mov rdx, qword [rcx + 8]
call qword [rdx + 0x30]
mov rdx, rdi
mov qword [rsp + 0x38], rdx
test rdi, rdi
je 0x180110837
movsxd r8, dword [rbp + 0xe0]
mov r14, qword [rdx + 0x18]
mov r15, qword [rdx + 0x10]
test r8d, r8d
js 0x18011040f
mov edi, dword [rbp + 0xd0]
xor ecx, ecx
cmp r15, r8
jle 0x180110417
mov r15, r8
jmp 0x180110417
cmp si, 0x69
jne 0x180110273
mov esi, 0x64
mov rcx, r14
call sym.extension.dll_PyNumber_Check
test eax, eax
je 0x180110739
mov rax, qword [r14 + 8]
mov ecx, dword [rax + 0xa8]
bt ecx, 0x17
jb 0x1801102b6
bt ecx, 0x18
jb 0x1801102b6
mov rcx, r14
call sym.extension.dll_PyNumber_Int
mov rdi, rax
test rax, rax
jne 0x1801102c5
mov rcx, r14
call sym.extension.dll_PyNumber_Long
mov rdi, rax
jmp 0x1801102bc
inc qword [r14]
mov rdi, r14
test rdi, rdi
je 0x180110739
mov rax, qword [rdi + 8]
mov ecx, dword [rax + 0xa8]
bt ecx, 0x17
jae 0x18011031f
mov r9d, dword [rbp + 0xe0]
movzx eax, si
lea rcx, [rbp - 0x70]
mov r8d, r15d
mov edx, 0x78
mov qword [rsp + 0x28], rdi
lea r14, [rbp - 0x70]
mov dword [rsp + 0x20], eax
call fcn.180119790
dec qword [rdi]
movsxd r15, eax
jne 0x18011030f
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
test r15, r15
js 0x180110837
mov rdx, qword [rsp + 0x38]
jmp 0x180110395
bt ecx, 0x18
jae 0x18011072e
mov r8d, dword [rbp + 0xe0]
movzx r9d, si
mov edx, r15d
mov rcx, rdi
call fcn.1801196c0
dec qword [rdi]
mov rdx, rax
mov qword [rsp + 0x38], rax
jne 0x18011035b
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [rax + 0x30]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x180110837
mov r14, qword [rdx + 0x18]
mov r15, qword [rdx + 0x10]
jmp 0x180110395
mov r8d, edi
mov edx, r15d
mov rcx, r14
call fcn.180119610
mov rdx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x180110837
mov r14, qword [rax + 0x18]
mov r15, qword [rax + 0x10]
mov edi, dword [rbp + 0xd0]
test dil, 0x10
je 0x1801103a7
mov r12d, getprotobyname
movzx ecx, word [r14]
mov r8d, 0xfffd
lea eax, [rcx - 0x2b]
test r8w, ax
je 0x1801103dc
test dil, 2
je 0x1801103c8
mov r13d, 0x2b
jmp 0x180110415
xor ecx, ecx
test dil, 4
je 0x1801103d6
lea r13d, [rcx + 0x20]
jmp 0x180110417
movzx r13d, cx
jmp 0x180110417
add r14, 2
movzx r13d, cx
dec r15
jmp 0x180110415
mov r8, qword [rbp - 0x78]
lea rcx, [rbp - 0x70]
mov edx, 0x78
lea r14, [rbp - 0x70]
call fcn.180119900
movsxd r15, eax
test eax, eax
js 0x180110837
mov rdx, qword [rsp + 0x38]
mov edi, dword [rbp + 0xd0]
xor ecx, ecx
mov r8, qword [rsp + 0x60]
mov r10, qword [rsp + 0x58]
cmp r8, r15
mov rax, r10
cmovl r8, r15
test r13w, r13w
setne cl
mov qword [rsp + 0x60], r8
sub rax, rcx
cmp rax, r8
jge 0x18011049e
mov r9, qword [rbp - 0x80]
mov rcx, qword [rsp + 0x50]
add rcx, 0x64
sub r9, r10
add rcx, r8
add r9, rcx
mov qword [rsp + 0x58], rcx
mov qword [rbp - 0x80], r9
js 0x18011075d
lea rcx, [rsp + 0x78]
mov rdx, r9
call fcn.180110ea0
test eax, eax
js 0x18011078e
mov rax, qword [rsp + 0x78]
mov rcx, qword [rbp - 0x80]
mov r10, qword [rsp + 0x58]
mov rax, qword [rax + 0x18]
mov r8, qword [rsp + 0x60]
sub rcx, r10
lea r9, [rax + rcx*2]
mov qword [rsp + 0x48], r9
jmp 0x1801104a3
mov r9, qword [rsp + 0x48]
test r13w, r13w
je 0x1801104d2
cmp r12w, 0x20
je 0x1801104bd
mov word [r9], r13w
add r9, 2
mov qword [rsp + 0x48], r9
dec r10
mov qword [rsp + 0x58], r10
cmp r8, r15
jle 0x1801104d2
dec r8
mov qword [rsp + 0x60], r8
mov ecx, edi
mov edx, 0xffdf
and ecx, 8
je 0x18011052c
lea eax, [rsi - 0x58]
test dx, ax
jne 0x18011052c
cmp r12w, 0x20
je 0x18011050d
movzx eax, word [r14]
add r9, 4
add r14, 4
mov word [r9 - 4], ax
movzx eax, word [r14 - 2]
mov qword [rsp + 0x48], r9
mov word [r9 - 2], ax
sub r10, 2
sub r8, 2
mov eax, 0
cmovs r8, rax
mov qword [rsp + 0x58], r10
sub r15, 2
mov qword [rsp + 0x60], r8
cmp r8, r15
jle 0x180110562
test dil, 1
jne 0x180110562
nop word [rax + rax]
dec r8
mov word [r9], r12w
dec r10
add r9, 2
cmp r8, r15
jg 0x180110540
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x60], r8
cmp r12w, 0x20
jne 0x1801105a8
test r13w, r13w
je 0x18011057c
mov word [r9], r13w
add r9, 2
mov qword [rsp + 0x48], r9
test ecx, ecx
je 0x1801105a8
lea eax, [rsi - 0x58]
test dx, ax
jne 0x1801105a8
movzx eax, word [r14]
add r9, 4
add r14, 4
mov word [r9 - 4], ax
movzx eax, word [r14 - 2]
mov qword [rsp + 0x48], r9
mov word [r9 - 2], ax
lea rdi, [r15 + r15]
cmp rdi, 0x10
jb 0x1801105c7
mov r8, rdi
mov rdx, r14
mov rcx, r9
call fcn.180230800
mov r8, qword [rsp + 0x60]
jmp 0x1801105f1
test rdi, rdi
je 0x1801105f1
mov rcx, r9
sub r14, r9
mov rdx, rdi
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
lea rcx, [rcx + 1]
mov byte [rcx - 1], al
dec rdx
jne 0x1801105e0
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x58]
dec r8
add r12, rdi
sub r13, r15
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], r13
cmp r8, r15
jl 0x18011063b
sub r8, r15
mov rdi, r12
mov eax, 0x20
inc r8
movzx eax, ax
lea r12, [r12 + r8*2]
mov rcx, r8
sub r13, r8
mov qword [rsp + 0x48], r12
rep stosw word [rdi], ax
mov qword [rsp + 0x58], r13
cmp qword [rsp + 0x68], 0
mov rdi, qword [rsp + 0x40]
je 0x180110659
cmp qword [rsp + 0x70], rdi
jge 0x180110659
cmp si, 0x25
jne 0x18011077b
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18011066f
dec qword [rcx]
jne 0x18011066f
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rbp + 0xd8]
dec r14
js 0x1801107f9
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x68]
jmp 0x18010fc39
mov rcx, qword [sym.extension.dll_PyExc_ValueError]
lea rdx, str.incomplete_format_key
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str.format_requires_a_mapping
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str._wants_int
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
mov rcx, qword [sym.extension.dll_PyExc_ValueError]
lea rdx, str.width_too_big
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
mov rcx, qword [sym.extension.dll_PyExc_ValueError]
lea rdx, str.prec_too_big
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
dec qword [rdx]
jne 0x180110716
mov rcx, rdx
call qword [rax + 0x30]
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str._s_argument_has_non_string_str__
call sym.extension.dll_PyErr_SetString
jmp 0x180110837
dec qword [rdi]
jne 0x180110739
mov rcx, rdi
call qword [rax + 0x30]
mov r9, qword [r14 + 8]
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str.___c_format:_a_number_is_required__not__.200s
mov r9, qword [r9 + 0x18]
movsx r8d, sil
call sym.extension.dll_PyErr_Format
jmp 0x180110837
test rdx, rdx
je 0x180110771
dec qword [rdx]
jne 0x180110771
mov rax, qword [rdx + 8]
mov rcx, rdx
call qword [rax + 0x30]
call sym.extension.dll_PyErr_NoMemory
jmp 0x180110837
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str.not_all_arguments_converted_during_string_formatting
call sym.extension.dll_PyErr_SetString
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180110837
dec qword [rcx]
jne 0x180110837
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
jmp 0x180110837
lea eax, [rsi - 0x1f]
movsx r8d, sil
cmp ax, 0x5f
jbe 0x1801107c4
mov r8d, 0x3f
mov r15, qword [rsp + 0x30]
mov rcx, qword [sym.extension.dll_PyExc_ValueError]
lea rdx, str.unsupported_format_character__c__0x_x__at_index__zd
sub rbx, qword [r15 + 0x18]
movzx r9d, si
sub rbx, 2
sar rbx, 1
mov qword [rsp + 0x20], rbx
call sym.extension.dll_PyErr_Format
jmp 0x18011083c
mov rdi, qword [rsp + 0x40]
jmp 0x1801107fe
mov r15, qword [rsp + 0x30]
cmp qword [rsp + 0x70], rdi
jge 0x180110822
cmp qword [rsp + 0x68], 0
jne 0x180110822
mov rcx, qword [sym.extension.dll_PyExc_TypeError]
lea rdx, str.not_all_arguments_converted_during_string_formatting
call sym.extension.dll_PyErr_SetString
jmp 0x18011083c
mov rdx, qword [rbp - 0x80]
lea rcx, [rsp + 0x78]
sub rdx, r13
call fcn.180110ea0
test eax, eax
jns 0x1801108b6
mov r15, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180110852
dec qword [rcx]
jne 0x180110852
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
mov edi, dword [rbp + 0xe8]
mov rsi, qword [rbp + 0xd8]
dec qword [r15]
jne 0x18011086e
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [rax + 0x30]
test edi, edi
je 0x180110881
dec qword [rsi]
jne 0x180110881
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
xor eax, eax
mov r14, qword [rsp + 0x190]
mov r13, qword [rsp + 0x198]
mov r12, qword [rsp + 0x1a0]
mov rbx, qword [rsp + 0x1a8]
mov r15, qword [rsp + 0x188]
add rsp, 0x1b0
pop rdi
pop rsi
pop rbp
ret
cmp dword [rbp + 0xe8], 0
je 0x1801108ce
dec qword [rsi]
jne 0x1801108ce
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
dec qword [r15]
jne 0x1801108dd
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [rax + 0x30]
mov rax, qword [rsp + 0x78]
jmp 0x180110883
lea rcx, str....._sourceextensionspythonObjectsunicodeobject.c
mov edx, 0x20a8
call sym.extension.dll__PyErr_BadInternalCall
xor eax, eax
add rsp, 0x1b0
pop rdi
pop rsi
pop rbp
ret