Function at 0x180013490
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 rsi, rcx
call fcn.1800e0c50
mov r14, rax
mov rdi, rax
lea rbx, [rax + 0x10]
mov rcx, qword [rax + 0x110]
cmp rcx, 0x40
jb 0x180013508
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18001356e
cmp qword [rdi + 0x160], rax
js 0x18001356e
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x18001357c
movzx r8d, byte [rdi + rcx*4 + 0x10]
lea rax, [rcx + 1]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3f
jne 0x180013586
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1800135f3
cmp qword [rdi + 0x160], rax
js 0x1800135f3
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013601
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx edx, byte [rbx]
mov eax, 1
jmp 0x180013605
movzx r9d, byte [rdi + rcx*4 + 0x14]
lea rax, [rcx + 2]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3e
jb 0x180013774
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1800137e0
cmp qword [rdi + 0x160], rax
js 0x1800137e0
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x1800137ee
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor eax, eax
mov edx, ebp
movzx r8d, byte [rbx + rax*4]
movzx r9d, byte [rbx + rax*4 + 4]
lea rcx, [rax + 2]
add rax, 3
movzx r10d, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx r11d, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ebx, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx r14d, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ecx, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x37], cl
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x35], cl
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx ecx, byte [rdi + rcx*4 + 0x10]
mov byte [rsp + 0x36], cl
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
mov byte [rsp + 0x34], cl
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
movzx r13d, byte [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
movzx ebp, byte [rdi + rax*4 + 0x10]
lea rcx, [rax + 1]
mov qword [rdi + 0x110], rcx
add rax, 2
mov r15d, dword [rdi + rcx*4 + 0x10]
mov qword [rdi + 0x110], rax
mov r12d, dword [rdi + rax*4 + 0x10]
inc rax
mov qword [rdi + 0x110], rax
movzx ecx, byte [rdi + rax*4 + 0x10]
inc rax
mov qword [rdi + 0x110], rax
mov byte [rsi], dl
mov byte [rsi + 1], r8b
mov byte [rsi + 2], r9b
mov byte [rsi + 3], r10b
mov byte [rsi + 4], r11b
mov byte [rsi + 5], bl
mov byte [rsi + 6], r14b
movzx eax, byte [rsp + 0x37]
mov byte [rsi + 7], al
movzx eax, byte [rsp + 0x35]
mov byte [rsi + 8], al
movzx eax, byte [rsp + 0x36]
mov byte [rsi + 9], al
movzx eax, byte [rsp + 0x34]
mov byte [rsi + 0xa], al
mov byte [rsi + 0xb], r13b
mov byte [rsi + 0xc], bpl
mov byte [rsi + 0xd], r15b
mov byte [rsi + 0xe], r12b
mov byte [rsi + 0xf], cl
dec qword [rdi]
jne 0x180013760
dec qword [rdi + 8]
jne 0x180013760
mov edx, 0x170
mov r8d, 0x10
mov rcx, rdi
call fcn.180013060
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx r10d, byte [rdi + rcx*4 + 0x18]
lea rdx, [rcx + 3]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x3d
jne 0x180013805
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013874
cmp qword [rdi + 0x160], rax
js 0x180013874
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013882
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx r9d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
jmp 0x180013618
movzx r11d, byte [rdi + rcx*4 + 0x1c]
lea rdx, [rcx + 4]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
jne 0x180013895
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x18001390b
cmp qword [rdi + 0x160], rax
js 0x18001390b
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013919
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
jmp 0x180013618
movzx eax, byte [rdi + rcx*4 + 0x20]
mov byte [rsp + 0x2d], al
lea rax, [rcx + 5]
mov qword [rdi + 0x110], rax
cmp rcx, 0x3b
jb 0x180013936
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x1800139ac
cmp qword [rdi + 0x160], rax
js 0x1800139ac
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x1800139ba
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx r11d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
jmp 0x18001363a
movzx eax, byte [rdi + rcx*4 + 0x24]
mov byte [rsp + 0x2e], al
lea rax, [rcx + 6]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
jne 0x1800139d6
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013a4c
cmp qword [rdi + 0x160], rax
js 0x180013a4c
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013a5a
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
jmp 0x18001363a
movzx edx, byte [rdi + rcx*4 + 0x28]
mov byte [rsp + 0x2f], dl
lea rdx, [rcx + 7]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x39
jb 0x180013a82
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013af9
cmp qword [rdi + 0x160], rax
js 0x180013af9
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013b07
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx r14d, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
jmp 0x18001365b
movzx ebp, byte [rdi + rcx*4 + 0x2c]
lea rdx, [rcx + 8]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
mov byte [rsp + 0x37], bpl
jne 0x180013b2e
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013ba2
cmp qword [rdi + 0x160], rax
js 0x180013ba2
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013bb0
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x18001365b
movzx r15d, byte [rdi + rcx*4 + 0x30]
lea rax, [rcx + 9]
mov qword [rdi + 0x110], rax
cmp rcx, 0x37
mov byte [rsp + 0x35], r15b
jb 0x180013bc1
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013c39
cmp qword [rdi + 0x160], rax
js 0x180013c39
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013c47
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx eax, byte [rbx]
mov byte [rsp + 0x35], al
mov ecx, 1
jmp 0x180013c49
movzx r12d, byte [rdi + rcx*4 + 0x34]
lea rax, [rcx + 0xa]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
mov byte [rsp + 0x36], r12b
jne 0x180013c6e
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013ce0
cmp qword [rdi + 0x160], rax
js 0x180013ce0
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013cee
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x180013683
movzx edx, byte [rdi + rcx*4 + 0x38]
mov byte [rsp + 0x34], dl
lea rdx, [rcx + 0xb]
mov qword [rdi + 0x110], rdx
cmp rcx, 0x35
jb 0x180013cff
mov r13d, r11d
mov r12d, r10d
mov r15d, r9d
mov ebp, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013d76
cmp qword [rdi + 0x160], rax
js 0x180013d76
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013d84
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx eax, byte [rbx]
mov byte [rsp + 0x34], al
mov ecx, 1
jmp 0x180013d86
movzx r13d, byte [rdi + rcx*4 + 0x3c]
lea rdx, [rcx + 0xc]
mov qword [rdi + 0x110], rdx
cmp rax, 0x3e
mov byte [rsp + 0x31], r10b
mov byte [rsp + 0x30], r11b
jne 0x180013dab
mov r12d, r9d
mov r15d, r8d
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013e17
cmp qword [rdi + 0x160], rax
js 0x180013e17
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013e25
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
mov edx, ebp
mov r8d, r15d
mov r9d, r12d
mov r10d, r13d
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x1800136ab
mov byte [rsp + 0x32], r9b
mov byte [rsp + 0x33], r8b
movzx ebp, byte [rdi + rcx*4 + 0x40]
lea rax, [rcx + 0xd]
mov qword [rdi + 0x110], rax
cmp rcx, 0x33
jb 0x180013e3c
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013ea2
cmp qword [rdi + 0x160], rax
js 0x180013ea2
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013eb0
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
movzx ebp, byte [rbx]
mov ecx, 1
lea rax, [rcx + 1]
mov edx, r15d
mov r8d, r12d
jmp 0x180013ec1
mov r15d, dword [rdi + rcx*4 + 0x44]
lea rax, [rcx + 0xe]
mov qword [rdi + 0x110], rax
cmp rdx, 0x3e
jne 0x180013ee3
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013f3a
cmp qword [rdi + 0x160], rax
js 0x180013f3a
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013f48
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor ecx, ecx
lea rax, [rcx + 1]
movzx edx, byte [rsp + 0x33]
movzx r8d, byte [rsp + 0x32]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x1800136cc
mov r12d, dword [rdi + rcx*4 + 0x48]
lea rax, [rcx + 0xf]
mov qword [rdi + 0x110], rax
cmp rcx, 0x31
jb 0x180013f6e
add r14, 0x120
call fcn.1800101b0
mov rcx, qword [rdi + 0x158]
test rcx, rcx
jle 0x180013f5e
cmp qword [rdi + 0x160], rax
js 0x180013f5e
add rcx, 0xffffffffffffff00
mov qword [rdi + 0x158], rcx
mov rcx, r14
mov edx, 6
mov r8, rbx
call fcn.1800e0fe0
jmp 0x180013f6c
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
mov r12d, dword [rdi + 0x10]
mov qword [rdi + 0x110], 1
mov eax, 1
jmp 0x180013f6e
mov rcx, r14
mov rdx, rbx
mov r8, rax
call fcn.180013160
xor eax, eax
movzx edx, byte [rsp + 0x33]
movzx r8d, byte [rsp + 0x32]
movzx r9d, byte [rsp + 0x31]
movzx r10d, byte [rsp + 0x30]
movzx r11d, byte [rsp + 0x2d]
movzx ebx, byte [rsp + 0x2e]
movzx r14d, byte [rsp + 0x2f]
jmp 0x1800136e7