Function at 0x1400e1e30
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov ebp, r9d
mov rsi, rdx
mov rbx, rcx
mov r12, qword [rdx + 8]
mov rax, qword [rdx + 0x20]
mov r15, qword [r12 + 0xd0]
mov ecx, dword [rdx + 0x28]
imul rcx, rcx, 0x38
lea r14, [rax + rcx]
add r14, 0xffffffffffffffc8
cmp word [r12 + 0x10], 0x3f
jne 0x1400e1ed2
mov rax, qword [rsi + 0x70]
mov rax, qword [rax]
cmp word [rax + 0x10], 0x59
je 0x1400e1e87
cmp dword [r12 + 0x7c], 0
jne 0x1400e1ed2
cmp dword [r14 + 0x30], 0
jne 0x1400e1ed2
mov eax, dword [rsi]
mov dword [r14 + 0x30], eax
test r15, r15
je 0x1400e1ec5
mov rcx, r15
nop dword [rax]
mov edx, eax
sub eax, dword [rcx + 0x54]
jb 0x1400e1ec7
mov dword [r14 + 0x30], eax
cmp dword [rcx + 0x5c], 0
jne 0x1400e249a
mov rcx, qword [rcx + 0xd0]
mov edx, eax
test rcx, rcx
jne 0x1400e1ea0
jmp 0x1400e1ec7
mov edx, eax
test byte [r15 + 0x41], 2
je 0x1400e1ed2
mov dword [r14 + 0xc], edx
xor eax, eax
add ebp, dword [r12 + 0x5c]
cmp byte [rbx + 0x145], 1
jne 0x1400e1f13
cmp word [r15 + 0x10], 0x42
jne 0x1400e1f13
mov ecx, dword [rsi + 0x6c]
test ecx, ecx
je 0x1400e1f13
mov rdx, qword [rsi + 0x70]
cmp r15, qword [rdx]
jne 0x1400e1f13
mov edx, dword [rdx + 0x20]
cmp edx, 6
je 0x1400e1f07
cmp edx, 1
jne 0x1400e1f13
add ebp, ecx
xor eax, eax
cmp al, byte [rbx + 0x2d8]
sbb eax, eax
test r8b, r8b
jne 0x1400e1f3f
mov rcx, qword [rbx + 0x318]
add eax, ebp
add eax, dword [rsi]
mov dword [rsp + 0x20], eax
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x28], 0
mov rdx, r12
xor r8d, r8d
mov r9d, ebp
call fcn.1400d1fd0
movzx eax, byte [rbx + 0x98]
cmp al, 1
jne 0x1400e1f5e
cmp byte [r12 + 0x44], 0x2d
jne 0x1400e1f6e
or byte [r14 + 0x34], 0x20
movzx eax, byte [rbx + 0x98]
cmp al, 2
jne 0x1400e1f6e
cmp byte [r15 + 0x44], 0x2d
jne 0x1400e1f6e
or byte [r14 + 0x34], 0x20
cmp byte [r12 + 0x44], 0x5e
jne 0x1400e1fc0
movzx eax, byte [r14 + 0x35]
test al, 8
jne 0x1400e1fc0
mov ecx, dword [r12 + 0x88]
test ecx, ecx
je 0x1400e1fb4
mov eax, dword [rsi]
add eax, ebp
add eax, dword [r12 + 0x54]
mov r8d, dword [r14 + 8]
mov edx, dword [rbx + 0xa0]
add edx, dword [rsi + 0x6c]
cmp edx, r8d
cmovbe edx, r8d
add edx, ecx
cmp edx, eax
jbe 0x1400e1fbc
mov dword [r14 + 0x1c], edx
jmp 0x1400e1fc0
and al, 0xfb
mov byte [r14 + 0x35], al
jmp 0x1400e1fc0
mov dword [r14 + 0x1c], eax
movzx eax, byte [rbx + 8]
and al, 0xfe
cmp al, 2
jne 0x1400e205f
movzx eax, word [r15 + 0x10]
cmp ax, 0x15
je 0x1400e2005
cmp byte [r15 + 0x44], 0x65
je 0x1400e2005
cmp ax, 0x13
je 0x1400e2005
cmp ax, 0x17
jne 0x1400e205f
mov eax, 0xc000
and eax, dword [r15 + 0x40]
cmp eax, 0x4000
je 0x1400e205f
cmp byte [rbx + 0xa4], 0
je 0x1400e205f
mov edi, dword [rsi]
mov rcx, rbx
mov rdx, rsi
call fcn.1400e0990
cmp edi, eax
jbe 0x1400e205f
mov rax, qword [r15 + 0xd0]
test rax, rax
je 0x1400e203e
cmp byte [rax + 0x44], 0xa
je 0x1400e205f
movzx eax, word [rax + 0x10]
add eax, 0xffffffa7
cmp eax, 0x14
ja 0x1400e203e
mov ecx, 0x104001
bt ecx, eax
jb 0x1400e205f
mov eax, dword [r12 + 0xa0]
test rax, rax
je 0x1400e205f
mov rcx, qword [r12 + 0x98]
cmp dword [rcx + rax*4 - 4], 0
jle 0x1400e205f
or byte [r14 + 0x34], 0x20
cmp byte [r15 + 0x44], 0x66
jne 0x1400e2099
mov rax, qword [r15 + 0x20]
cmp rax, 2
jb 0x1400e2080
mov rcx, qword [r15 + 0x18]
movzx eax, word [rcx + rax - 2]
cmp eax, 0x7b24
je 0x1400e2094
movzx eax, word [r15 + 0x10]
cmp eax, 0x17
ja 0x1400e2099
mov ecx, 0xa80000
bt ecx, eax
jae 0x1400e2099
or byte [r14 + 0x34], 0x20
cmp byte [rbx + 8], 1
je 0x1400e2130
cmp byte [r14 + 0x35], 0
js 0x1400e2130
movzx eax, byte [r15 + 0x44]
cmp eax, 0x1f
je 0x1400e20da
cmp eax, 0x66
jne 0x1400e20e2
mov rcx, qword [r15 + 0x20]
cmp rcx, 2
jb 0x1400e20e2
mov rdx, qword [r15 + 0x18]
movzx ecx, word [rdx + rcx - 2]
cmp ecx, 0x7b24
jne 0x1400e20e2
jmp 0x1400e20fa
cmp word [r15 + 0x10], 0x2e
je 0x1400e20fa
movzx ecx, word [r15 + 0x10]
mov edx, ecx
or edx, 2
cmp edx, 0x17
jne 0x1400e2121
cmp al, 0x4d
je 0x1400e2130
cmp eax, 0x59
je 0x1400e2130
cmp byte [r12 + 0x44], 0x40
jne 0x1400e2112
mov eax, 0xc000
and eax, dword [r15 + 0x40]
cmp eax, 0x8000
jne 0x1400e2130
mov eax, dword [rsi]
add eax, ebp
mov dword [r14 + 8], eax
or byte [r14 + 0x34], 1
jmp 0x1400e2130
cmp al, 0x65
je 0x1400e212b
cmp cx, 0x13
jne 0x1400e2130
cmp eax, 0x4d
jne 0x1400e20f5
movzx eax, byte [r14 + 0x34]
movabs r13, 0x200000000801
movabs r11, 0x100000000009
test al, 8
je 0x1400e217f
mov rdx, qword [r12 + 0xd0]
movzx r8d, byte [r12 + 0x44]
movzx ecx, byte [rbx + 0x6c]
cmp r8b, 0x1c
jne 0x1400e216a
cmp cl, 1
je 0x1400e2179
cmp byte [rbx + 0x174], 7
jne 0x1400e21f0
cmp r8b, 0x5e
jne 0x1400e21f0
or al, 0x20
mov byte [r14 + 0x34], al
movzx eax, word [r12 + 0x10]
add eax, 0xffffffe7
cmp eax, 0x2d
ja 0x1400e2298
bt r13, rax
jae 0x1400e2298
movzx eax, byte [r12 + 0x44]
lea ecx, [rax - 0x3c]
cmp ecx, 0x2c
ja 0x1400e21b3
bt r11, rcx
jb 0x1400e2298
cmp eax, 0x1e
je 0x1400e2298
mov rcx, qword [r12 + 0xd0]
test rcx, rcx
je 0x1400e2298
movzx eax, byte [rcx + 0x44]
cmp eax, 0x1f
je 0x1400e2253
cmp eax, 0x66
jne 0x1400e225a
cmp qword [rcx + 0x20], 0
je 0x1400e225a
mov rdx, qword [rcx + 0x18]
cmp byte [rdx], 0x7d
jne 0x1400e225a
jmp 0x1400e2272
cmp word [rdx + 0x10], 0x41
jne 0x1400e217f
cmp word [r12 + 0x10], 4
jne 0x1400e2226
cmp r8b, 0x40
je 0x1400e2298
mov r8, qword [r12 + 0xd8]
test r8, r8
je 0x1400e217f
cmp dword [r8 + 0x4c], 0
jne 0x1400e217f
movzx edx, byte [rdx + 0x44]
cmp dl, 0x1c
jne 0x1400e2238
cmp cl, 1
je 0x1400e217f
cmp dl, 0x2e
jne 0x1400e2179
cmp byte [rbx + 0x98], 1
je 0x1400e217f
jmp 0x1400e2179
cmp word [rcx + 0x10], 0x33
je 0x1400e2272
movzx ecx, word [rcx + 0x10]
cmp ecx, 0x16
je 0x1400e2272
cmp ecx, 0x18
je 0x1400e2272
cmp al, 0x64
je 0x1400e2272
cmp cx, 0x14
jne 0x1400e2298
mov edi, dword [rsi]
mov rcx, rbx
mov rdx, rsi
mov r13, r11
call fcn.1400e0990
mov r11, r13
movabs r13, 0x200000000801
cmp edi, eax
jbe 0x1400e2298
or byte [r14 + 0x35], 2
cmp byte [r12 + 0x44], 0x3c
jne 0x1400e22ae
cmp byte [rbx + 0x174], 3
jne 0x1400e22ae
or byte [r14 + 0x34], 0x20
movzx eax, word [r12 + 0x10]
add eax, 0xffffffe7
cmp eax, 0x2d
ja 0x1400e2300
bt r13, rax
jae 0x1400e2300
movzx eax, byte [r12 + 0x44]
lea ecx, [rax - 0x3c]
cmp ecx, 0x2c
ja 0x1400e22d6
bt r11, rcx
jb 0x1400e2300
cmp eax, 0x1e
je 0x1400e2300
cmp word [r15 + 0x10], 0x16
jne 0x1400e2300
mov rax, qword [r15 + 0xc8]
test rax, rax
je 0x1400e2300
mov ecx, dword [r15 + 0x6c]
sub ecx, dword [rax + 0x6c]
cmp ecx, 0xb
jb 0x1400e2300
or byte [r14 + 0x34], 0x20
mov rdi, r12
nop word cs:[rax + rax]
mov rdi, qword [rdi + 0xd0]
test rdi, rdi
je 0x1400e232f
movzx ecx, word [rdi + 0x10]
cmp cx, 4
je 0x1400e2310
cmp word [r12 + 0x10], 4
jne 0x1400e2385
add ebp, dword [rsi]
mov dword [rsi], ebp
movzx edx, word [r12 + 0x10]
cmp edx, 4
sete al
je 0x1400e255b
movzx ecx, word [r15 + 0x10]
cmp ecx, 0x15
jne 0x1400e2539
mov r8, qword [r15 + 0xd0]
test r8, r8
je 0x1400e2539
movzx r9d, word [r8 + 0x10]
or r9d, 2
cmp r9d, 0x5b
jne 0x1400e2475
mov dword [r14 + 0xc], ebp
mov eax, dword [rsi]
mov dword [r14 + 0x10], eax
jmp 0x1400e262b
movzx eax, byte [rdi + 0x44]
cmp eax, 6
je 0x1400e23a0
cmp cx, 0x41
je 0x1400e23a0
cmp al, 0xd
jne 0x1400e232f
cmp cx, 0x3d
je 0x1400e23aa
jmp 0x1400e232f
cmp eax, 0x1c
je 0x1400e232f
cmp eax, 0x51
je 0x1400e232f
mov eax, dword [rdi + 0x48]
test eax, eax
jne 0x1400e23cb
mov dl, 1
mov r8b, 1
mov r13, r11
call fcn.140126f70
mov r11, r13
movabs r13, 0x200000000801
cmp eax, 2
je 0x1400e232f
mov eax, dword [rdi + 0x48]
test eax, eax
jne 0x1400e23f9
movzx ecx, word [rdi + 0x10]
mov dl, 1
mov r8b, 1
mov r13, r11
call fcn.140126f70
mov r11, r13
movabs r13, 0x200000000801
cmp eax, 0xa
je 0x1400e232f
mov eax, dword [rdi + 0x48]
test eax, eax
jne 0x1400e2427
movzx ecx, word [rdi + 0x10]
mov dl, 1
mov r8b, 1
mov r13, r11
call fcn.140126f70
mov r11, r13
movabs r13, 0x200000000801
cmp eax, 0xb
je 0x1400e232f
mov al, 1
test byte [rdi + 0x40], 8
mov cl, 1
jne 0x1400e272d
cmp word [rdi + 0x10], 0x2f
mov cl, 1
je 0x1400e272d
movzx edx, byte [rdi + 0x44]
cmp dl, 6
jne 0x1400e2460
cmp byte [rbx + 0x67], 0
mov cl, 1
jne 0x1400e272d
cmp dl, 0xd
jne 0x1400e272b
cmp byte [rbx + 0x6b], 0
setne cl
jmp 0x1400e272d
mov r9, r8
nop dword [rax + rax]
movzx r10d, word [r9 + 0x10]
mov r9, qword [r9 + 0xd0]
cmp r10w, 4
jne 0x1400e24ac
test r9, r9
jne 0x1400e2480
jmp 0x1400e24f0
mov edx, eax
test byte [r15 + 0x41], 2
jne 0x1400e1ece
jmp 0x1400e1ed2
movzx r10d, r10w
cmp r10d, 0x9f
jne 0x1400e24f0
test r9, r9
je 0x1400e24f0
movzx r10d, word [r9 + 0x10]
cmp r10d, 4
jne 0x1400e24d7
mov r9, qword [r9 + 0xd0]
test r9, r9
jne 0x1400e24be
jmp 0x1400e24f0
cmp r10d, 0x5b
je 0x1400e2376
nop word cs:[rax + rax]
movzx r9d, word [r8 + 0x10]
mov r8, qword [r8 + 0xd0]
cmp r9w, 4
jne 0x1400e250a
test r8, r8
jne 0x1400e24f0
jmp 0x1400e2539
cmp r9w, 5
jne 0x1400e2539
test r8, r8
je 0x1400e2539
movzx r9d, word [r8 + 0x10]
cmp r9d, 4
jne 0x1400e252f
mov r8, qword [r8 + 0xd0]
test r8, r8
jne 0x1400e2516
jmp 0x1400e2539
cmp r9d, 0x5b
je 0x1400e2376
cmp edx, 4
je 0x1400e255b
cmp edx, 0x37
je 0x1400e255b
cmp ecx, 0x3d
je 0x1400e25a9
cmp ecx, 0x41
jne 0x1400e255b
mov cl, 0x51
cmp byte [r15 + 0x44], 0x51
jne 0x1400e25b3
jmp 0x1400e263c
movzx ecx, byte [r15 + 0x44]
cmp cl, 6
je 0x1400e25c0
movzx edx, cl
cmp edx, 0xd
je 0x1400e25c0
cmp edx, 0x1b
jne 0x1400e25f6
test al, al
je 0x1400e259d
cmp byte [r12 + 0x44], 0x40
je 0x1400e2595
mov rax, qword [r12 + 0xd8]
test rax, rax
je 0x1400e2595
cmp dword [rax + 0x4c], 0
je 0x1400e259d
cmp dword [r12 + 0x4c], 0
je 0x1400e25c0
cmp byte [rbx + 0x6c], 2
jne 0x1400e25c0
mov dword [r14 + 8], ebp
jmp 0x1400e2625
movzx ecx, byte [r15 + 0x44]
cmp cl, 0x4d
jne 0x1400e25b9
mov dword [r14 + 0xc], ebp
jmp 0x1400e262b
xor eax, eax
cmp cl, 6
jne 0x1400e2565
mov eax, dword [r15 + 0x48]
test eax, eax
je 0x1400e25cf
cmp eax, 2
je 0x1400e25e9
jmp 0x1400e2603
movzx ecx, word [r15 + 0x10]
mov dl, 1
mov r8b, 1
mov rdi, r11
call fcn.140126f70
mov r11, rdi
cmp eax, 2
jne 0x1400e2603
test byte [r12 + 0x40], 0x80
jne 0x1400e261f
movzx ecx, byte [r15 + 0x44]
cmp cl, 0x2d
jne 0x1400e263c
mov eax, dword [rsi]
mov dword [r14 + 8], eax
jmp 0x1400e2625
cmp word [r15 + 0x10], 0x2f
jne 0x1400e261f
cmp dword [r15 + 0xbc], 0
jne 0x1400e261f
cmp qword [r15 + 0xc0], 0
je 0x1400e25e9
cmp byte [rbx + 0x67], 0
jne 0x1400e262b
mov eax, dword [rsi]
mov dword [r14 + 0xc], eax
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r12 + 0x44], 0x15
jne 0x1400e264c
mov eax, dword [rsi]
mov dword [r14 + 0x1c], eax
jmp 0x1400e262b
cmp cl, 0x1f
je 0x1400e2675
movzx eax, cl
cmp eax, 0x66
jne 0x1400e267d
mov rax, qword [r15 + 0x20]
cmp rax, 2
jb 0x1400e267d
mov rdx, qword [r15 + 0x18]
movzx eax, word [rdx + rax - 2]
cmp eax, 0x7b24
jne 0x1400e267d
jmp 0x1400e2690
cmp word [r15 + 0x10], 0x2e
je 0x1400e2690
movzx eax, word [r15 + 0x10]
mov edx, eax
or edx, 2
cmp edx, 0x17
jne 0x1400e2713
mov rax, qword [r15 + 0xc8]
test rax, rax
je 0x1400e262b
nop dword [rax]
mov rax, qword [rax + 0xd8]
test rax, rax
je 0x1400e262b
movzx ecx, word [rax + 0x10]
cmp ecx, 4
je 0x1400e26a0
add ecx, 0xffffffe7
cmp ecx, 0x2d
ja 0x1400e262b
bt r13, rcx
jae 0x1400e262b
movzx eax, byte [rax + 0x44]
lea ecx, [rax - 0x3c]
cmp ecx, 0x2c
ja 0x1400e26e5
bt r11, rcx
jb 0x1400e262b
cmp eax, 0x1e
je 0x1400e262b
mov eax, dword [rsi + 0x28]
cmp rax, 2
jb 0x1400e262b
imul rax, rax, 0x38
mov rcx, qword [rsi + 0x20]
cmp dword [rax + rcx - 0x44], 0
jne 0x1400e262b
jmp 0x1400e2625
cmp cl, 0x65
je 0x1400e2690
cmp ax, 0x13
jne 0x1400e262b
jmp 0x1400e2690
xor ecx, ecx
cmp dword [rdi + 0xbc], 0
jne 0x1400e2747
cmp qword [rdi + 0xc0], 0
jne 0x1400e2747
cmp byte [rdi + 0x44], 0xd
sete al
test cl, cl
je 0x1400e2759
movzx eax, byte [r14 + 0x34]
test al, al
jns 0x1400e276f
jmp 0x1400e232f
cmp byte [rbx + 0x1f], 0
sete cl
or al, cl
cmp al, 1
jne 0x1400e232f
movzx eax, byte [r14 + 0x34]
or al, 0x40
mov byte [r14 + 0x34], al
jmp 0x1400e232f