Function at 0x140094520
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 0x140094804
test rsi, rsi
je 0x1400947f7
test edx, edx
je 0x14009481d
test r8, r8
je 0x1400947f7
cmp edx, 0x3f
jg 0x140094c69
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 0x1400946b6
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 0x140094c61
sub r12, 1
cmp r8, 1
je 0x1400946b6
cmp r8, 2
je 0x140094692
cmp r8, 3
je 0x14009466e
cmp r8, 4
je 0x14009464c
cmp r8, 5
je 0x140094628
cmp r8, 6
je 0x140094604
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c85
cmp r12, r13
lea r10, [rax + 1]
je 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
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 0x140094c61
lea r12, [r9 - 7]
jmp 0x1400946b6
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.140093cc0
add dword [rcx + 0x10], 1
test rsi, rsi
mov dword [rcx + 0x54], 0
je 0x1400947f7
cmp rbp, 0x3f
jbe 0x140094ce0
lea rdi, [rbp - 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.140093cc0
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 0x140094a53
test r12, r12
je 0x140094972
cmp r12, 1
je 0x14009494a
cmp r12, 2
je 0x14009492c
cmp r12, 3
je 0x14009490e
cmp r12, 4
je 0x1400948f0
cmp r12, 5
je 0x1400948d2
cmp r12, 6
je 0x1400948b4
mov rdx, r13
mov rcx, rbx
lea rdi, [rbp - 0x80]
call fcn.140093cc0
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.140093cc0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093cc0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093cc0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093cc0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093cc0
add dword [rbx + 0x10], 1
add r13, 0x40
mov dword [rbx + 0x54], 0
mov rdx, r13
mov rcx, rbx
sub rdi, 0x40
call fcn.140093cc0
add r13, 0x40
add dword [rbx + 0x10], 1
cmp rdi, 0x3f
mov dword [rbx + 0x54], 0
jbe 0x140094a53
mov rdx, r13
mov rcx, rbx
sub rdi, 0x200
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x40]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x80]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0xc0]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x100]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x140]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x180]
mov rcx, rbx
mov dword [rbx + 0x54], 0
call fcn.140093cc0
add dword [rbx + 0x10], 1
lea rdx, [r13 + 0x1c0]
mov dword [rbx + 0x54], 0
mov rcx, rbx
add r13, 0x200
call fcn.140093cc0
add dword [rbx + 0x10], 1
cmp rdi, 0x3f
mov dword [rbx + 0x54], 0
ja 0x140094972
lea rax, [rbp - 0x40]
xor edx, edx
lea rdi, [rbx - 1]
and rax, 0xffffffffffffffc0
and ebp, 0x3f
lea rsi, [rsi + rax + 0x40]
je 0x1400947f7
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 0x140094b81
movzx r10d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r10b
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
cmp rcx, 1
lea r9d, [rdx + 2]
je 0x140094b81
cmp rcx, 2
je 0x140094b65
cmp rcx, 3
je 0x140094b49
cmp rcx, 4
je 0x140094b2d
cmp rcx, 5
je 0x140094b11
cmp rcx, 6
je 0x140094af5
movzx ebp, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], bpl
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
lea r9d, [rdx + 3]
movzx edx, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], dl
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
add r9d, 1
movzx r12d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r12b
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
add r9d, 1
movzx r13d, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], r13b
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
add r9d, 1
movzx eax, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], al
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
add r9d, 1
movzx ecx, byte [rsi + r11]
mov byte [rdi + r11 + 0x14], cl
add r11, 1
cmp r9d, 0x40
je 0x1400947f0
add r9d, 1
movzx r10d, byte [rsi + r11]
cmp r8, r11
mov byte [rdi + r11 + 0x14], r10b
je 0x140094c50
cmp r9d, 0x40
je 0x1400947f0
movzx ebp, byte [r11 + rsi + 1]
cmp r9d, 0x3f
lea rdx, [r11 + 2]
mov byte [rdi + r11 + 0x15], bpl
je 0x1400947f0
movzx r12d, byte [r11 + rsi + 2]
cmp r9d, 0x3e
mov byte [rdi + rdx + 0x14], r12b
je 0x1400947f0
movzx r13d, byte [r11 + rsi + 3]
cmp r9d, 0x3d
mov byte [rdi + r11 + 0x17], r13b
je 0x1400947f0
movzx eax, byte [r11 + rsi + 4]
cmp r9d, 0x3c
mov byte [rdi + r11 + 0x18], al
je 0x1400947f0
movzx ecx, byte [r11 + rsi + 5]
cmp r9d, 0x3b
mov byte [rdi + r11 + 0x19], cl
je 0x1400947f0
movzx r10d, byte [r11 + rsi + 6]
cmp r9d, 0x3a
mov byte [rdi + r11 + 0x1a], r10b
je 0x1400947f0
movzx ebp, byte [r11 + rsi + 7]
mov byte [rdi + r11 + 0x1b], bpl
add r11, 8
cmp r9d, 0x39
je 0x1400947f0
movzx r10d, byte [rsi + r11]
add r9d, 8
cmp r8, r11
mov byte [rdi + r11 + 0x14], r10b
jne 0x140094b94
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 0x140094cad
cmp rbp, 0x3f
ja 0x140094827
cmp edx, 0x3f
jg 0x1400947f7
lea rdi, [rbx - 1]
jmp 0x140094a6f
cmp eax, 0x40
mov dword [rbx + 0x54], eax
jne 0x1400947f7
lea rdx, [rbx + 0x14]
mov rcx, rbx
call fcn.140093cc0
mov dword [rbx + 0x54], 0
add dword [rbx + 0x10], 1
jmp 0x1400947f7
lea rdx, [rbx + 0x14]
mov rcx, rbx
call fcn.140093cc0
add dword [rbx + 0x10], 1
cmp r12, 0x3f
mov dword [rbx + 0x54], 0
ja 0x140094827
mov rbp, r12
xor edx, edx
jmp 0x140094a6f
test rbp, rbp
je 0x1400947f7
xor edx, edx
jmp 0x140094c7c