Function at 0x1800e20e0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
mov r14, rcx
xor r15d, r15d
mov rdx, qword [rcx + 8]
cmp dword [rdx - 0x10], r15d
jle 0x1800e2b7e
lea r12d, [r15 - 1]
lea r13, vtable.JRStringParser::CPositions.0
lea rbx, vtable.JRStringParser::CPositionNode.0
lea rsi, [0x180000000]
test r15d, r15d
js 0x1800e218d
cmp r15d, dword [rdx - 0x10]
jge 0x1800e218d
movsxd rdi, r15d
cmp word [rdx + rdi*2], 0x5e
jne 0x1800e2190
test r15d, r15d
jne 0x1800e2193
lea ecx, [r15 + 0x30]
call fcn.180296428
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm0
mov qword [rax + 0x10], 0
mov dword [rax + 0x18], r12d
mov qword [rax + 0x20], 0
mov qword [rax + 8], r13
mov qword [rax], rbx
mov byte [rax + 0x28], 1
lea rcx, [r14 + 0x20]
mov rdx, rax
call fcn.180007980
mov r15d, 1
jmp 0x1800e2b70
movsxd rdi, r15d
test r15d, r15d
js 0x1800e21fc
cmp r15d, dword [rdx - 0x10]
jge 0x1800e21fc
lea rcx, [rdi + rdi]
cmp word [rcx + rdx], 0x24
jne 0x1800e2200
mov eax, dword [rdx - 0x10]
dec eax
cmp r15d, eax
jne 0x1800e2200
mov ecx, 0x30
call fcn.180296428
mov qword [rbp + 0x50], rax
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm0
mov qword [rax + 0x10], 0
mov dword [rax + 0x18], r12d
mov qword [rax + 0x20], 0
mov qword [rax + 8], r13
mov qword [rax], rbx
mov byte [rax + 0x28], 0
lea rcx, [r14 + 0x20]
mov rdx, rax
call fcn.180007980
inc r15d
jmp 0x1800e2b70
lea rcx, [rdi + rdi]
test r15d, r15d
js 0x1800e2a0a
cmp r15d, dword [rdx - 0x10]
jge 0x1800e2a0a
cmp word [rcx + rdx], 0x5c
jne 0x1800e2305
lea ebx, [r15 + 1]
cmp ebx, dword [rdx - 0x10]
jge 0x1800e2bf6
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [rbp - 0x48], rax
test ebx, ebx
js 0x1800e2254
mov rcx, qword [r14 + 8]
cmp ebx, dword [rcx - 0x10]
jge 0x1800e2254
movsxd rax, r15d
movzx edx, word [rcx + rax*2 + 2]
jmp 0x1800e2256
xor edx, edx
lea rcx, [rbp - 0x48]
call fcn.180066bd0
mov ecx, 0x38
call fcn.180296428
mov rsi, rax
mov qword [rbp - 0x30], rax
movzx edi, byte [r14 + 0x10]
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm0
xor eax, eax
mov qword [rsi + 0x10], rax
mov dword [rsi + 0x18], r12d
mov qword [rsi + 0x20], rax
mov qword [rsi + 8], r13
lea rax, vtable.JRStringParser::CTextNode.0
mov qword [rsi], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [rsi + 0x28], rax
lea rdx, [rbp - 0x48]
lea rcx, [rsi + 0x28]
call fcn.1800a0610
mov byte [rsi + 0x30], dil
lea rcx, [r14 + 0x20]
mov rdx, rsi
call fcn.180007980
add r15d, 2
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e2300
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e22f6
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800e2300
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
jmp 0x1800e2b62
cmp r15d, dword [rdx - 0x10]
jge 0x1800e2a0a
cmp word [rcx + rdx], 0x25
jne 0x1800e2a0a
mov byte [rbp + 0x58], 1
mov byte [rbp + 0x60], 0
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [rbp - 0x58], rax
xor r13b, r13b
mov byte [rbp + 0x50], r13b
inc r15d
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e2575
nop dword [rax]
test r15d, r15d
js 0x1800e2364
cmp r15d, dword [rcx - 0x10]
jge 0x1800e2364
movsxd rbx, r15d
movzx eax, word [rcx + rbx*2]
jmp 0x1800e2369
xor eax, eax
movsxd rbx, r15d
movzx ecx, ax
call fcn.18029d748
test eax, eax
jne 0x1800e2563
test r15d, r15d
js 0x1800e23a0
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e23a0
lea rax, [rbx + rbx]
cmp word [rax + rcx], 0x2b
jne 0x1800e23a4
mov byte [rbp + 0x58], 1
mov byte [rbp + 0x60], 0
jmp 0x1800e2556
lea rax, [rbx + rbx]
test r15d, r15d
js 0x1800e2b91
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e23cb
cmp word [rax + rcx], 0x3f
jne 0x1800e23cb
mov byte [rbp + 0x60], 1
mov byte [rbp + 0x58], 0
jmp 0x1800e2556
test r15d, r15d
js 0x1800e2b91
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e23f2
cmp word [rax + rcx], 0x2a
jne 0x1800e23f2
mov byte [rbp + 0x58], 0
mov byte [rbp + 0x60], 0
jmp 0x1800e2556
test r15d, r15d
js 0x1800e2b91
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e2b91
cmp word [rcx + rax], 0x5b
jne 0x1800e2b91
inc r15d
mov edx, dword [rcx - 0x10]
cmp r15d, edx
jge 0x1800e2435
movsxd rax, r15d
cmp word [rcx + rax*2], 0x21
jne 0x1800e2435
mov r9b, 1
mov byte [rbp + 0x50], r9b
inc r15d
jmp 0x1800e243a
movzx r9d, byte [rbp + 0x50]
cmp r15d, edx
jge 0x1800e254c
movsxd rdi, r15d
lea r12d, [r15 + 2]
lea r13d, [r15 + 1]
lea r14, [rdi*2 + 4]
mov rdx, rcx
mov byte [rbp + 0x50], r9b
nop dword [rax]
mov rcx, rdx
test rdi, rdi
js 0x1800e2480
cmp r15d, dword [rdx - 0x10]
jge 0x1800e2480
lea r8, [rdi + rdi]
cmp word [r8 + rdx], 0x5d
je 0x1800e2548
jmp 0x1800e2484
lea r8, [rdi + rdi]
mov eax, dword [rdx - 0x10]
sub eax, 2
cmp r15d, eax
jge 0x1800e24fe
cmp rdi, 0xffffffffffffffff
jl 0x1800e24fe
mov eax, dword [rdx - 0x10]
cmp r13d, eax
jge 0x1800e24fe
cmp word [r8 + rdx + 2], 0x2d
jne 0x1800e24fe
test rdi, rdi
js 0x1800e24b7
cmp r15d, eax
jge 0x1800e24b7
movzx ebx, word [r8 + rdx]
jmp 0x1800e24b9
xor ebx, ebx
cmp r12d, eax
jge 0x1800e24c5
movzx esi, word [r14 + rdx]
jmp 0x1800e24cb
xor esi, esi
mov byte [rbp + 0x50], r9b
cmp bx, si
ja 0x1800e2b91
movzx edx, bx
lea rcx, [rbp - 0x58]
call fcn.180066bd0
inc bx
cmp bx, si
jbe 0x1800e24d4
add r15d, 3
add r13d, 3
add r12d, 3
add rdi, 3
add r14, 6
jmp 0x1800e252e
test rdi, rdi
js 0x1800e2510
cmp r15d, dword [rdx - 0x10]
jge 0x1800e2510
movzx eax, word [r8 + rdx]
jmp 0x1800e2512
xor eax, eax
movzx edx, ax
lea rcx, [rbp - 0x58]
call fcn.180066bd0
inc r15d
inc r13d
inc r12d
inc rdi
add r14, 2
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 8]
mov rdx, rcx
cmp r15d, dword [rcx - 0x10]
movzx r9d, byte [rbp + 0x50]
jl 0x1800e2460
mov r14, qword [rbp + 0x48]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e2b91
inc r15d
cmp r15d, dword [rcx - 0x10]
jl 0x1800e2350
lea rsi, [0x180000000]
mov r12d, 0xffffffff
movzx r13d, byte [rbp + 0x50]
mov rax, qword [r14 + 8]
cmp r15d, dword [rax - 0x10]
jge 0x1800e2bc6
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [rbp - 0x50], rax
test r15d, r15d
js 0x1800e25ad
mov rcx, qword [r14 + 8]
cmp r15d, dword [rcx - 0x10]
jge 0x1800e25ad
movsxd rax, r15d
movzx edx, word [rcx + rax*2]
jmp 0x1800e25af
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.180066bd0
mov rbx, qword [rbp - 0x50]
test rbx, rbx
je 0x1800e2b99
movzx eax, word [rbx]
cmp ax, 0x64
jne 0x1800e25fa
xor ecx, ecx
xor edx, edx
cmp ax, word [rdx + rsi + 0x31f660]
jne 0x1800e25ec
inc rcx
lea rdx, [rcx + rcx]
movzx eax, word [rdx + rbx]
test ax, ax
jne 0x1800e25d2
movzx eax, word [rsi + rcx*2 + 0x31f660]
cmp word [rbx + rcx*2], ax
je 0x1800e2640
test rbx, rbx
je 0x1800e2b99
movzx eax, word [rbx]
cmp ax, 0x78
jne 0x1800e271a
xor ecx, ecx
xor edx, edx
cmp ax, word [rdx + rsi + 0x31f634]
jne 0x1800e262e
inc rcx
lea rdx, [rcx + rcx]
movzx eax, word [rdx + rbx]
test ax, ax
jne 0x1800e2614
movzx eax, word [rsi + rcx*2 + 0x31f634]
cmp word [rbx + rcx*2], ax
jne 0x1800e271a
mov ecx, 0x58
call fcn.180296428
mov r12, rax
mov qword [rbp - 0x28], rax
mov rcx, qword [r14 + 0x18]
mov rdx, qword [rcx]
lea rax, [rdx + 8]
mov qword [rcx], rax
mov r14, qword [rdx]
xorps xmm0, xmm0
movups xmmword [r12 + 8], xmm0
movups xmmword [r12 + 0x18], xmm0
mov qword [r12 + 0x10], 0
mov dword [r12 + 0x18], 0xffffffff
mov qword [r12 + 0x20], 0
lea rax, vtable.JRStringParser::CPositions.0
mov qword [r12 + 8], rax
lea rax, vtable.JRStringParser::CVariableNode.0
mov qword [r12], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x28], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x38], rax
lea rdx, [rbp - 0x50]
lea rcx, [r12 + 0x28]
call fcn.1800a0610
movzx eax, byte [rbp + 0x58]
mov byte [r12 + 0x30], al
movzx eax, byte [rbp + 0x60]
mov byte [r12 + 0x31], al
lea rdx, [rbp - 0x58]
lea rcx, [r12 + 0x38]
call fcn.1800a0610
mov byte [r12 + 0x40], r13b
lea rax, vtable.JRStringParser::CIntVariableNode.0
mov qword [r12], rax
mov qword [r12 + 0x48], r14
mov qword [r12 + 0x50], 0
jmp 0x1800e298a
test rbx, rbx
je 0x1800e2b99
movzx eax, word [rbx]
cmp ax, 0x6c
jne 0x1800e283a
xor ecx, ecx
xor edx, edx
cmp ax, word [rdx + rsi + 0x31f65c]
jne 0x1800e274e
inc rcx
lea rdx, [rcx + rcx]
movzx eax, word [rdx + rbx]
test ax, ax
jne 0x1800e2734
movzx eax, word [rsi + rcx*2 + 0x31f65c]
cmp word [rbx + rcx*2], ax
jne 0x1800e283a
mov ecx, 0x58
call fcn.180296428
mov r12, rax
mov qword [rbp - 0x20], rax
mov rcx, qword [r14 + 0x18]
mov rdx, qword [rcx]
lea rax, [rdx + 8]
mov qword [rcx], rax
mov r14, qword [rdx]
xorps xmm0, xmm0
movups xmmword [r12 + 8], xmm0
movups xmmword [r12 + 0x18], xmm0
mov qword [r12 + 0x10], 0
mov dword [r12 + 0x18], 0xffffffff
mov qword [r12 + 0x20], 0
lea rax, vtable.JRStringParser::CPositions.0
mov qword [r12 + 8], rax
lea rax, vtable.JRStringParser::CVariableNode.0
mov qword [r12], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x28], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x38], rax
lea rdx, [rbp - 0x50]
lea rcx, [r12 + 0x28]
call fcn.1800a0610
movzx eax, byte [rbp + 0x58]
mov byte [r12 + 0x30], al
movzx eax, byte [rbp + 0x60]
mov byte [r12 + 0x31], al
lea rdx, [rbp - 0x58]
lea rcx, [r12 + 0x38]
call fcn.1800a0610
mov byte [r12 + 0x40], r13b
lea rax, vtable.JRStringParser::CIntVariableNode.0
mov qword [r12], rax
mov qword [r12 + 0x48], 0
mov qword [r12 + 0x50], r14
jmp 0x1800e298a
test rbx, rbx
je 0x1800e2b99
movzx eax, word [rbx]
cmp ax, 0x73
jne 0x1800e2878
xor ecx, ecx
xor edx, edx
cmp ax, word [rdx + rsi + 0x31fb74]
jne 0x1800e286a
inc rcx
lea rdx, [rcx + rcx]
movzx eax, word [rdx + rbx]
test ax, ax
jne 0x1800e2850
movzx eax, word [rsi + rcx*2 + 0x31fb74]
cmp word [rbx + rcx*2], ax
je 0x1800e28be
test rbx, rbx
je 0x1800e2b99
movzx eax, word [rbx]
cmp ax, 0x77
jne 0x1800e2b99
xor ecx, ecx
xor edx, edx
cmp ax, word [rdx + rsi + 0x31fbb8]
jne 0x1800e28ac
inc rcx
lea rdx, [rcx + rcx]
movzx eax, word [rdx + rbx]
test ax, ax
jne 0x1800e2892
movzx eax, word [rsi + rcx*2 + 0x31fbb8]
cmp word [rbx + rcx*2], ax
jne 0x1800e2b99
mov ecx, 0x50
call fcn.180296428
mov r12, rax
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x18]
mov rdx, qword [rcx]
lea rax, [rdx + 8]
mov qword [rcx], rax
mov r14, qword [rdx]
xorps xmm0, xmm0
movups xmmword [r12 + 8], xmm0
movups xmmword [r12 + 0x18], xmm0
mov qword [r12 + 0x10], 0
mov dword [r12 + 0x18], 0xffffffff
mov qword [r12 + 0x20], 0
lea rax, vtable.JRStringParser::CPositions.0
mov qword [r12 + 8], rax
lea rax, vtable.JRStringParser::CVariableNode.0
mov qword [r12], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x28], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r12 + 0x38], rax
lea rdx, [rbp - 0x50]
lea rcx, [r12 + 0x28]
call fcn.1800a0610
movzx eax, byte [rbp + 0x58]
mov byte [r12 + 0x30], al
movzx eax, byte [rbp + 0x60]
mov byte [r12 + 0x31], al
lea rdx, [rbp - 0x58]
lea rcx, [r12 + 0x38]
call fcn.1800a0610
mov byte [r12 + 0x40], r13b
lea rax, vtable.JRStringParser::CStringVariableNode.0
mov qword [r12], rax
mov qword [r12 + 0x48], r14
mov r14, qword [rbp + 0x48]
lea rcx, [r14 + 0x20]
mov rdx, r12
call fcn.180007980
inc r15d
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e29cc
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e29c2
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800e29cc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e29ff
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e29f5
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800e29ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r12d, 0xffffffff
jmp 0x1800e2b5b
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov rbx, rax
mov qword [rbp - 0x40], rax
mov rax, qword [r14 + 8]
cmp r15d, dword [rax - 0x10]
jge 0x1800e2ab2
nop dword [rax]
test rdi, rdi
js 0x1800e2a48
cmp r15d, dword [rax - 0x10]
jge 0x1800e2a48
lea rcx, [rdi + rdi]
cmp word [rcx + rax], 0x25
je 0x1800e2aae
jmp 0x1800e2a4c
lea rcx, [rdi + rdi]
test rdi, rdi
js 0x1800e2a93
cmp r15d, dword [rax - 0x10]
jge 0x1800e2a93
cmp word [rax + rcx], 0x5c
je 0x1800e2aae
test rdi, rdi
js 0x1800e2a93
cmp r15d, dword [rax - 0x10]
jge 0x1800e2a93
cmp word [rax + rcx], 0x24
je 0x1800e2aae
test rdi, rdi
js 0x1800e2a93
cmp r15d, dword [rax - 0x10]
jge 0x1800e2a93
cmp word [rax + rcx], 0x5e
je 0x1800e2aae
test rdi, rdi
js 0x1800e2a93
cmp r15d, dword [rax - 0x10]
jge 0x1800e2a93
movzx edx, word [rax + rcx]
jmp 0x1800e2a95
xor edx, edx
lea rcx, [rbp - 0x40]
call fcn.180066bd0
inc r15d
inc rdi
mov rax, qword [r14 + 8]
cmp r15d, dword [rax - 0x10]
jl 0x1800e2a30
mov rbx, qword [rbp - 0x40]
mov ecx, 0x38
call fcn.180296428
mov r14, rax
mov qword [rbp - 0x10], rax
mov r13, qword [rbp + 0x48]
movzx esi, byte [r13 + 0x10]
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
movups xmmword [rax + 0x18], xmm0
xor eax, eax
mov qword [r14 + 0x10], rax
mov dword [r14 + 0x18], r12d
mov qword [r14 + 0x20], rax
lea rax, vtable.JRStringParser::CPositions.0
mov qword [r14 + 8], rax
lea rax, vtable.JRStringParser::CTextNode.0
mov qword [r14], rax
call fcn.180001e40
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov qword [r14 + 0x28], rax
lea rdx, [rbp - 0x40]
lea rcx, [r14 + 0x28]
call fcn.1800a0610
mov byte [r14 + 0x30], sil
lea rcx, [r13 + 0x20]
mov rdx, r14
call fcn.180007980
nop
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e2b57
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e2b4d
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800e2b57
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r14, qword [rbp + 0x48]
lea r13, vtable.JRStringParser::CPositions.0
lea rsi, [0x180000000]
lea rbx, vtable.JRStringParser::CPositionNode.0
mov rdx, qword [r14 + 8]
cmp r15d, dword [rdx - 0x10]
jl 0x1800e2125
mov al, 1
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r12d, 0xffffffff
jmp 0x1800e2bc6
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e2bc6
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e2bbc
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800e2bc6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1800e2bf6
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1800e2bec
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x1800e2bf6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
xor al, al
jmp 0x1800e2b80