Function at 0x140090cc4
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
sub rsp, 0x150
mov rbx, qword [0x1400e53d0]
mov r9d, dword [rsp + 0x28]
xor esi, esi
movsx eax, byte [rbx]
and qword [rsp + 0x40], rsi
lea r8d, [rsi + 1]
add rbx, r8
mov rdi, rcx
mov ecx, 0xfffff000
and dword [rsp + 0x48], ecx
and r9d, ecx
xor ebp, ebp
cmp eax, 0x41
mov qword [rsp + 0x20], rsi
mov qword [0x1400e53d0], rbx
mov dword [rsp + 0x28], r9d
jg 0x140090f9a
je 0x14009147c
test eax, eax
je 0x140090f7e
cmp eax, 0x2f
jle 0x1400910d4
cmp eax, 0x31
jle 0x140090e08
cmp eax, 0x39
jg 0x1400910d4
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc6ee0]
lea rcx, [rsp + 0x20]
call fcn.14008eca4
mov rsi, qword [rsp + 0x20]
test rsi, rsi
je 0x140090dc4
mov r9d, dword [rsp + 0x28]
mov eax, r9d
shl eax, 0x1c
sar eax, 0x1c
je 0x140090d8d
cmp eax, 2
jne 0x140090dc9
lea rdx, str.operator
lea rcx, [rsp + 0x60]
call fcn.14008e7dc
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.14008ee2c
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.14008da10
mov rsi, qword [rsp + 0x20]
mov r9d, dword [rsp + 0x28]
mov eax, r9d
and r9d, 0xff0
mov qword [rdi], rsi
shl eax, 0x1c
sar eax, 0x1c
and eax, 0xf
or eax, r9d
and dword [rdi + 8], 0xfffff000
or dword [rdi + 8], eax
lea r11, [rsp + 0x150]
mov rax, rdi
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
mov esi, dword [rsp + 0x48]
mov qword [rsp + 0x40], rbp
and esi, ecx
test dl, dl
mov dword [rsp + 0x48], esi
je 0x140090edd
lea rcx, [rsp + 0x130]
call fcn.140090a4c
lea rcx, [rsp + 0x50]
mov dl, 0x3c
mov rbx, rax
call fcn.14008e7a8
lea rdx, [rsp + 0x30]
mov rcx, rax
mov r8, rbx
call fcn.14008ee2c
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.14008eb30
lea rcx, [rsp + 0x40]
call fcn.14008deb0
cmp al, 0x3e
jne 0x140090e74
lea rcx, [rsp + 0x40]
mov dl, 0x20
call fcn.14008f000
lea rcx, [rsp + 0x40]
mov dl, 0x3e
call fcn.14008f000
mov rax, qword [rsp + 0x170]
test rax, rax
je 0x140090e90
mov byte [rax], 1
mov rbx, qword [0x1400e53d0]
cmp byte [rbx], bpl
jne 0x140090ec9
mov rax, qword [rsp + 0x40]
mov qword [rdi], rax
mov eax, dword [rsp + 0x48]
and dword [rdi + 8], 0xfffff000
mov ecx, eax
and eax, 0xff0
shl ecx, 0x1c
sar ecx, 0x1c
and ecx, 0xf
or ecx, eax
or dword [rdi + 8], ecx
jmp 0x140090dec
mov esi, dword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
add rbx, 1
mov qword [0x1400e53d0], rbx
lea rcx, [rsp + 0x140]
xor edx, edx
call fcn.14009173c
lea rcx, [rsp + 0x20]
mov rdx, rax
call fcn.14008da10
cmp qword [rsp + 0x20], 0
mov qword [0x1400e53d0], rbx
je 0x140090f4c
mov eax, dword [rsp + 0x28]
shl eax, 0x1c
sar eax, 0x1c
je 0x140090f19
cmp eax, 2
jne 0x140090f4c
cmp byte [rbx - 1], 0x31
jne 0x140090f4c
lea rcx, [rsp + 0x50]
mov dl, 0x7e
call fcn.14008e7a8
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.14008ee2c
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.14008da10
test rbp, rbp
je 0x140090f6d
shl esi, 0x1c
sar esi, 0x1c
je 0x140090f5e
cmp esi, 2
jne 0x140090f6d
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call fcn.14008eb30
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov eax, dword [rsp + 0x28]
jmp 0x140090ea8
sub rbx, r8
mov qword [0x1400e53d0], rbx
mov edx, 2
mov rcx, rdi
call fcn.14008dd34
jmp 0x140090dec
cmp eax, 0x42
je 0x140091479
jle 0x1400910d4
cmp eax, 0x5a
jle 0x14009147c
cmp eax, 0x5f
jne 0x1400910d4
movsx ecx, byte [rbx]
add rbx, r8
cmp ecx, 0x4f
mov qword [0x1400e53d0], rbx
jg 0x1400910e8
cmp ecx, 0x44
jge 0x140091447
cmp ecx, 0x39
jg 0x140091085
je 0x14009103a
test ecx, ecx
je 0x140090f7e
cmp ecx, 0x2f
jle 0x1400910d4
cmp ecx, 0x36
jle 0x140091021
cmp ecx, 0x38
jg 0x1400910d4
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc7000]
mov rcx, rdi
call fcn.14008e7dc
jmp 0x140090dec
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc7000]
jmp 0x140090d64
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
lea rcx, [rsp + 0x30]
mov rdx, qword [rbx + rdx*8 + 0xc7000]
call fcn.14008e7dc
mov r11d, dword [rsp + 0x38]
bts r11d, 0xb
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov eax, r11d
and r11d, 0xff0
shl eax, 0x1c
sar eax, 0x1c
and eax, 0xf
or eax, r11d
jmp 0x140090de2
cmp ecx, 0x3f
je 0x1400910ba
cmp ecx, 0x40
jle 0x1400910d4
cmp ecx, 0x42
jle 0x140091447
cmp ecx, 0x43
jne 0x1400910d4
lea rdx, str._string
lea rcx, [rsp + 0x30]
call fcn.1400903cc
mov r11d, dword [rsp + 0x38]
bts r11d, 8
jmp 0x140091062
movsx eax, byte [rbx]
add rbx, r8
test eax, eax
mov qword [0x1400e53d0], rbx
je 0x140090f7e
cmp eax, 0x30
je 0x1400910dc
mov edx, r8d
jmp 0x140090f8d
xor r8d, r8d
lea rdx, str._anonymous_namespace
jmp 0x1400910a4
cmp ecx, 0x54
jg 0x140091342
cmp ecx, 0x53
jge 0x140091447
sub ecx, 0x50
je 0x1400912b9
sub ecx, r8d
je 0x140090dc9
cmp ecx, r8d
jne 0x1400910d4
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
lea rcx, [rsp + 0x20]
mov rdx, qword [rbx + rdx*8 + 0xc6fc8]
call fcn.14008eca4
mov r11, qword [0x1400e53d0]
lea rcx, [rsp + 0x40]
movsx rdx, byte [r11]
mov rdx, qword [rbx + rdx*8 + 0xc6ec8]
call fcn.14008eca4
mov r11, qword [0x1400e53d0]
movsx eax, byte [r11]
add r11, 1
cmp eax, 0x30
mov qword [0x1400e53d0], r11
je 0x14009127b
cmp eax, 0x31
je 0x14009119f
add eax, 0xffffffce
cmp eax, 2
ja 0x14009118f
lea rcx, [rsp + 0x20]
lea r8, [rsp + 0x40]
mov rdx, rdi
call fcn.14008ee2c
jmp 0x140090dec
sub r11, 1
mov qword [0x1400e53d0], r11
jmp 0x140090f88
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.14008ee2c
lea rcx, [rsp + 0x90]
call fcn.1400904bc
lea rdx, [rsp + 0xf0]
mov r8b, 0x2c
mov rcx, rax
call fcn.14008f3e0
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
lea rcx, [rsp + 0xb0]
call fcn.1400904bc
lea rdx, [rsp + 0x70]
mov r8b, 0x2c
mov rcx, rax
call fcn.14008f3e0
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
lea rcx, [rsp + 0xd0]
call fcn.1400904bc
lea rdx, [rsp + 0x110]
mov r8b, 0x2c
mov rcx, rax
call fcn.14008f3e0
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
lea rcx, [rsp + 0x80]
xor edx, edx
call fcn.14008f588
lea rdx, [rsp + 0xa0]
mov r8b, 0x29
mov rcx, rax
call fcn.14008f3e0
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
lea rcx, [rsp + 0x30]
mov r8b, 0x27
mov rdx, rdi
call fcn.14008f3e0
jmp 0x140090dec
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.140094d90
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x30]
mov r8b, 0x20
call fcn.14008f3e0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.14008ee2c
mov rcx, rax
jmp 0x14009117d
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
lea rcx, [rsp + 0x20]
mov rdx, qword [rbx + rdx*8 + 0xc6fc8]
call fcn.14008eca4
lea rcx, [rsp + 0x100]
xor r8d, r8d
xor edx, edx
call fcn.140090cc4
lea rcx, [rsp + 0x40]
mov rdx, rax
call fcn.14008da10
cmp qword [rsp + 0x40], rsi
je 0x140091178
mov eax, dword [rsp + 0x48]
shl eax, 0x1c
sar eax, 0x1c
je 0x140091316
cmp eax, 2
jne 0x140091178
lea rcx, [rsp + 0x40]
call fcn.14008d984
test eax, eax
je 0x14009132d
cmp eax, 2
jne 0x140091178
test byte [rsp + 0x48], 0x40
je 0x140091178
mov edx, 1
jmp 0x140090f8d
cmp ecx, 0x55
jl 0x1400910d4
cmp ecx, 0x56
jle 0x140091460
cmp ecx, 0x57
jle 0x1400910d4
cmp ecx, 0x59
jle 0x140091447
cmp ecx, 0x5f
jne 0x1400910d4
movsx eax, byte [rbx]
add rbx, r8
cmp eax, 0x41
mov qword [0x1400e53d0], rbx
jl 0x1400910d4
cmp eax, 0x44
jle 0x140091398
cmp eax, 0x46
jle 0x1400913b1
cmp eax, 0x4a
jg 0x1400910d4
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc7090]
jmp 0x140091014
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
lea rcx, [rsp + 0x30]
mov rdx, qword [rbx + rdx*8 + 0xc7090]
call fcn.14008e7dc
mov rax, qword [0x1400e53d0]
cmp byte [rax], 0x3f
jne 0x14009140e
lea rcx, [rsp + 0x120]
call fcn.140092c58
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
mov rax, qword [0x1400e53d0]
cmp byte [rax], 0x40
jne 0x140091425
add rax, 1
mov qword [0x1400e53d0], rax
jmp 0x140091425
lea rcx, [rsp + 0x60]
call fcn.140091d70
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.14008eb30
lea rdx, [0x1400c745c]
lea rcx, [rsp + 0x30]
call fcn.14008f098
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov eax, dword [rsp + 0x38]
jmp 0x140090ea8
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc6fc8]
jmp 0x140091014
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0xc6fc8]
jmp 0x140090d64
mov ebp, r8d
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
lea rcx, [rsp + 0x20]
mov rdx, qword [rbx + rdx*8 + 0xc6ea8]
call fcn.14008eca4
test ebp, ebp
je 0x140090d6e
mov rsi, qword [rsp + 0x20]
test rsi, rsi
je 0x140090dc4
lea rcx, [rsp + 0x20]
call fcn.14008d984
test eax, eax
je 0x1400914c7
cmp eax, 2
jne 0x140090dc4
mov r9d, dword [rsp + 0x28]
or r9d, 0x20
jmp 0x140090dc9