Function at 0x140094410
Capabilities:
Parse credit card information

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rsi, rdx
mov edx, dword [rcx + 0x54]
mov rbx, rcx
mov rbp, r8
cmp edx, 0x40
je 0x1400946f4
test rsi, rsi
je 0x1400946e7
test edx, edx
je 0x14009470d
test r8, r8
je 0x1400946e7
cmp edx, 0x3f
jg 0x140094b59
lea r12, [r8 - 1]
mov edi, 0x3f
lea eax, [rdx + 1]
mov ecx, edi
lea rdi, [rbx - 1]
sub ecx, edx
mov r13, r12
mov r8, r12
sub r13, rcx
and r8d, 7
cdqe
je 0x1400945a6
add rsi, 1
movzx r9d, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], r9b
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
cmp r8, 1
je 0x1400945a6
cmp r8, 2
je 0x140094582
cmp r8, 3
je 0x14009455e
cmp r8, 4
je 0x14009453c
cmp r8, 5
je 0x140094518
cmp r8, 6
je 0x1400944f4
add rsi, 1
movzx ebp, byte [rsi - 1]
mov edx, eax
mov byte [rdi + rax + 0x14], bpl
add rax, 1
cmp r12, r13
mov rbp, r12
je 0x140094b51
sub r12, 1
add rsi, 1
movzx r10d, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], r10b
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
add rsi, 1
movzx r11d, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], r11b
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
add rsi, 1
movzx ecx, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], cl
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
add rsi, 1
movzx r8d, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], r8b
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
add rsi, 1
movzx r9d, byte [rsi - 1]
mov edx, eax
mov rbp, r12
mov byte [rdi + rax + 0x14], r9b
add rax, 1
cmp r12, r13
je 0x140094b51
sub r12, 1
lea rcx, [rsi + 1]
movzx ebp, byte [rcx - 1]
test r12, r12
mov edx, eax
mov rsi, rcx
mov byte [rdi + rax + 0x14], bpl
mov rbp, r12
je 0x140094b75
cmp r12, r13
lea r10, [rax + 1]
je 0x140094b51
add rsi, 1
movzx r11d, byte [rsi - 1]
lea r9, [r12 - 1]
mov edx, r10d
lea r8, [rax + 2]
cmp r9, r13
mov r12, r9
mov rbp, r9
mov byte [rdi + rax + 0x15], r11b
je 0x140094b51
lea rsi, [rcx + 2]
movzx ebp, byte [rsi - 1]
sub r12, 1
cmp r12, r13
mov edx, r8d
lea r10, [rax + 3]
mov byte [rdi + r8 + 0x14], bpl
mov rbp, r12
je 0x140094b51
lea rsi, [rcx + 3]
movzx r11d, byte [rsi - 1]
lea r12, [r9 - 2]
mov edx, r10d
lea r8, [rax + 4]
cmp r12, r13
mov rbp, r12
mov byte [rdi + rax + 0x17], r11b
je 0x140094b51
lea rsi, [rcx + 4]
movzx ebp, byte [rsi - 1]
lea r12, [r9 - 3]
mov edx, r8d
lea r10, [rax + 5]
cmp r12, r13
mov byte [rdi + rax + 0x18], bpl
mov rbp, r12
je 0x140094b51
lea rsi, [rcx + 5]
movzx r11d, byte [rsi - 1]
lea r12, [r9 - 4]
mov edx, r10d
lea r8, [rax + 6]
cmp r12, r13
mov rbp, r12
mov byte [rdi + rax + 0x19], r11b
je 0x140094b51
lea rsi, [rcx + 6]
movzx ebp, byte [rsi - 1]
lea r12, [r9 - 5]
mov edx, r8d
lea r10, [rax + 7]
cmp r12, r13
mov byte [rdi + rax + 0x1a], bpl
mov rbp, r12
je 0x140094b51
lea rsi, [rcx + 7]
lea r12, [r9 - 6]
mov edx, r10d
movzx ecx, byte [rsi - 1]
mov rbp, r12
mov byte [rdi + rax + 0x1b], cl
add rax, 8
cmp r12, r13
je 0x140094b51
lea r12, [r9 - 7]
jmp 0x1400945a6
mov dword [rbx + 0x54], 0x40
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
lea rdx, [rcx + 0x14]
call fcn.140093bb0
add dword [rcx + 0x10], 1
test rsi, rsi
mov dword [rcx + 0x54], 0
je 0x1400946e7
cmp rbp, 0x3f
jbe 0x140094bd0
lea rdi, [rbp - 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.140093bb0
mov r12, rdi
add dword [rbx + 0x10], 1
mov dword [rbx + 0x54], 0
shr r12, 6
lea r13, [rsi + 0x40]
and r12d, 7
cmp rdi, 0x3f
jbe 0x140094943
test r12, r12
je 0x140094862
cmp r12, 1
je 0x14009483a
cmp r12, 2
je 0x14009481c
cmp r12, 3
je 0x1400947fe
cmp r12, 4
je 0x1400947e0
cmp r12, 5
je 0x1400947c2
cmp r12, 6
je 0x1400947a4
mov rdx, r13
mov rcx, rbx
lea rdi, [rbp - 0x80]
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea r13, [rsi + 0x80]
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093bb0
add r13, 0x40
add dword [rbx + 0x10], 1
cmp rdi, 0x3f
mov dword [rbx + 0x54], 0
jbe 0x140094943
mov rdx, r13
mov rcx, rbx
sub rdi, 0x200
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x40]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x80]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0xc0]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x100]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x140]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x180]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093bb0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x1c0]
mov dword [rbx + 0x54], 0
mov rcx, rbx
add r13, 0x200
call fcn.140093bb0
add dword [rbx + 0x10], 1
cmp rdi, 0x3f
mov dword [rbx + 0x54], 0
ja 0x140094862
lea rax, [rbp - 0x40]
xor edx, edx
lea rdi, [rbx - 1]
and rax, 0xffffffffffffffc0
and ebp, 0x3f
lea rsi, [rsi + rax + 0x40]
je 0x1400946e7
lea r9d, [rdx + 1]
movsxd r11, r9d
lea r8, [rbp + r11 - 1]
sub rsi, r11
mov rcx, r8
sub rcx, r11
and ecx, 7
je 0x140094a71
movzx r10d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r10b
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
cmp rcx, 1
lea r9d, [rdx + 2]
je 0x140094a71
cmp rcx, 2
je 0x140094a55
cmp rcx, 3
je 0x140094a39
cmp rcx, 4
je 0x140094a1d
cmp rcx, 5
je 0x140094a01
cmp rcx, 6
je 0x1400949e5
movzx ebp, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], bpl
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
lea r9d, [rdx + 3]
movzx edx, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], dl
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
add r9d, 1
movzx r12d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r12b
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
add r9d, 1
movzx r13d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r13b
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
add r9d, 1
movzx eax, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], al
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
add r9d, 1
movzx ecx, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], cl
add r11, 1
cmp r9d, 0x40
je 0x1400946e0
add r9d, 1
movzx r10d, byte [rsi + r11]
cmp r8, r11
mov byte [rdi + r11 + 0x14], r10b
je 0x140094b40
cmp r9d, 0x40
je 0x1400946e0
movzx ebp, byte [r11 + rsi + 1]
cmp r9d, 0x3f
lea rdx, [r11 + 2]
mov byte [rdi + r11 + 0x15], bpl
je 0x1400946e0
movzx r12d, byte [r11 + rsi + 2]
cmp r9d, 0x3e
mov byte [rdi + rdx + 0x14], r12b
je 0x1400946e0
movzx r13d, byte [r11 + rsi + 3]
cmp r9d, 0x3d
mov byte [rdi + r11 + 0x17], r13b
je 0x1400946e0
movzx eax, byte [r11 + rsi + 4]
cmp r9d, 0x3c
mov byte [rdi + r11 + 0x18], al
je 0x1400946e0
movzx ecx, byte [r11 + rsi + 5]
cmp r9d, 0x3b
mov byte [rdi + r11 + 0x19], cl
je 0x1400946e0
movzx r10d, byte [r11 + rsi + 6]
cmp r9d, 0x3a
mov byte [rdi + r11 + 0x1a], r10b
je 0x1400946e0
movzx ebp, byte [r11 + rsi + 7]
mov byte [rdi + r11 + 0x1b], bpl
add r11, 8
cmp r9d, 0x39
je 0x1400946e0
movzx r10d, byte [rsi + r11]
add r9d, 8
cmp r8, r11
mov byte [rdi + r11 + 0x14], r10b
jne 0x140094a84
mov dword [rbx + 0x54], r9d
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
cmp edx, 0x40
mov dword [rbx + 0x54], edx
je 0x140094b9d
cmp rbp, 0x3f
ja 0x140094717
cmp edx, 0x3f
jg 0x1400946e7
lea rdi, [rbx - 1]
jmp 0x14009495f
cmp eax, 0x40
mov dword [rbx + 0x54], eax
jne 0x1400946e7
lea rdx, [rbx + 0x14]
mov rcx, rbx
call fcn.140093bb0
mov dword [rbx + 0x54], 0
add dword [rbx + 0x10], 1
jmp 0x1400946e7
lea rdx, [rbx + 0x14]
mov rcx, rbx
call fcn.140093bb0
add dword [rbx + 0x10], 1
cmp r12, 0x3f
mov dword [rbx + 0x54], 0
ja 0x140094717
mov rbp, r12
xor edx, edx
jmp 0x14009495f
test rbp, rbp
je 0x1400946e7
xor edx, edx
jmp 0x140094b6c