Function at 0x140091040
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rax, qword [0x14019ac40]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbp, qword [rcx + 0x10]
test rbp, rbp
je 0x1400910d3
mov r13d, edx
mov rsi, rcx
lea rbx, [rcx + 0x10]
movzx eax, word [rbp + 0x10]
cmp ax, 0x62
je 0x14009108f
cmp ax, 0x3d
jne 0x1400910f2
mov cl, byte [rbp + 0x44]
cmp cl, 0x3a
je 0x14009108f
cmp cl, 0x13
jne 0x1400910f2
mov rbp, qword [rbp + 0xd0]
mov qword [rbx], rbp
test rbp, rbp
jne 0x1400910ab
jmp 0x1400910d3
mov qword [rbx], rax
mov rbp, rax
test rax, rax
je 0x1400910d3
cmp word [rbp + 0x10], 4
jne 0x140091072
cmp byte [rbp + 0x44], 0x32
mov rax, qword [rbp + 0xd0]
je 0x1400910a0
test rax, rax
je 0x1400910cc
cmp dword [rax + 0x48], 0
jne 0x1400910a0
jmp 0x140091072
mov qword [rbx], 0
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14016a260
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r13d, 0x11
jg 0x1400910d3
cmp r13d, 0x10
je 0x140091189
cmp r13d, 3
jne 0x14009124d
cmp ax, 4
jne 0x140091963
cmp byte [rbp + 0x44], 0x32
mov rax, qword [rbp + 0xd0]
jne 0x140091130
mov qword [rbx], rax
test rax, rax
jne 0x140091146
jmp 0x140091961
test rax, rax
je 0x14009195a
cmp dword [rax + 0x48], 0
je 0x140091963
mov qword [rbx], rax
mov rbp, rax
jmp 0x14009115a
mov qword [rbx], rax
mov rbp, rax
test rax, rax
je 0x140091961
cmp word [rbp + 0x10], 4
jne 0x14009117d
cmp byte [rbp + 0x44], 0x32
mov rax, qword [rbp + 0xd0]
je 0x14009114b
test rax, rax
je 0x14009195a
cmp dword [rax + 0x48], 0
jne 0x14009114b
cmp word [rbp + 0x10], 4
je 0x140091116
jmp 0x140091963
lea r15, [rsp + 0x40]
mov qword [rsp + 0x30], r15
movabs rax, 0x200000000
mov qword [rsp + 0x38], rax
cmp byte [rbp + 0x44], 0x52
jne 0x140091a31
xor eax, eax
lea r14, [rsp + 0x30]
cmp eax, dword [rsp + 0x3c]
jae 0x14009122c
mov rcx, qword [rsp + 0x30]
mov eax, eax
mov qword [rcx + rax*8], rbp
mov eax, dword [rsp + 0x38]
add eax, 1
mov dword [rsp + 0x38], eax
mov rcx, qword [rbx]
test rcx, rcx
je 0x140091a31
mov rbp, qword [rcx + 0xd0]
mov qword [rbx], rbp
test rbp, rbp
jne 0x1400911fe
jmp 0x140091a31
mov qword [rbx], rcx
mov rbp, rcx
test rcx, rcx
je 0x140091a31
cmp word [rbp + 0x10], 4
jne 0x140091221
cmp byte [rbp + 0x44], 0x32
mov rcx, qword [rbp + 0xd0]
je 0x1400911ef
test rcx, rcx
je 0x140091a2a
cmp dword [rcx + 0x48], 0
jne 0x1400911ef
cmp byte [rbp + 0x44], 0x52
je 0x1400911b3
jmp 0x140091a31
mov r8d, eax
add r8, 1
mov r9d, 8
mov rcx, r14
mov rdx, r15
call fcn.1400290c0
mov eax, dword [rsp + 0x38]
jmp 0x1400911b9
lea edi, [r13 + 1]
mov rcx, rsi
mov edx, edi
call fcn.140091040
mov rdx, qword [rsi + 0x10]
xor eax, eax
test rdx, rdx
je 0x1400918cf
mov dword [rsp + 0x2c], edi
mov r12d, 0xa80000
mov r14d, 0x1500000
xor r15d, r15d
mov dword [rsp + 0x28], 0
mov rax, rdx
mov qword [rsp + 0x20], r15
mov rax, qword [rax + 0xd0]
test rax, rax
je 0x1400912f8
movzx ecx, word [rax + 0x10]
cmp cx, 4
je 0x14009128d
mov r9b, byte [rdx + 0x44]
cmp r9b, 0xa
je 0x140091596
cmp r9b, 0x44
jne 0x140091308
mov r8b, byte [rax + 0x44]
mov r10d, 2
cmp r8b, 0x13
je 0x140091331
cmp r8b, 0x28
je 0x140091331
mov rdi, qword [rsi]
mov r11b, byte [rdi + 0x1a3]
mov r8b, 1
mov r9b, 0x44
cmp r11b, 8
je 0x1400912ed
cmp r11b, 6
jne 0x1400915a1
cmp cx, 0x2e
je 0x140091331
jmp 0x1400915a1
mov r9b, byte [rdx + 0x44]
mov r10d, 3
cmp r9b, 0xa
je 0x140091331
test rax, rax
setne r8b
mov r10d, 2
cmp r9b, 0x20
je 0x140091331
cmp r9b, 0x23
je 0x140091331
cmp r9b, 0x2e
jne 0x1400915a1
mov r10d, 1
mov r15d, r10d
cmp r15d, r13d
jne 0x1400913c9
cmp byte [rdx + 0x44], 0x44
jne 0x1400913c9
cmp qword [rsp + 0x20], 0
je 0x1400913ba
mov r8d, dword [rbp + 0x98]
cmp r8d, dword [rbp + 0x9c]
jae 0x140091836
mov rax, qword [rbp + 0x90]
mov ecx, r8d
mov dword [rax + rcx*4], r13d
add dword [rbp + 0x98], 1
test r13d, r13d
jle 0x140091381
or byte [rbp + 0x40], 0x80
mov rax, qword [rbx]
test rax, rax
je 0x140091c08
mov rcx, qword [rax + 0xc8]
mov rax, rcx
cmp word [rcx + 0x10], 4
jne 0x1400913aa
mov rcx, qword [rax + 0xc8]
test rcx, rcx
jne 0x140091394
add dword [rax + 0xb0], 1
test r13d, r13d
jle 0x1400913ba
or byte [rax + 0x41], 1
mov rbp, qword [rbx]
mov rdx, rbp
test rbp, rbp
je 0x140091b7d
mov cl, byte [rdx + 0x44]
cmp cl, 0x13
je 0x1400913eb
cmp cl, 0x4b
jne 0x1400913f8
cmp qword [rdx + 0x20], 0
je 0x1400913f8
mov rax, qword [rdx + 0x18]
cmp byte [rax], 0x7d
jne 0x1400913f8
jmp 0x140091b07
cmp word [rdx + 0x10], 0x33
jne 0x1400913f8
mov ax, 0x33
jmp 0x140091419
movzx eax, word [rdx + 0x10]
cmp rax, 0x18
ja 0x140091588
bt r14, rax
jae 0x140091588
cmp cl, 0x4b
je 0x140091b07
cmp qword [rdx + 0xc0], 0
jne 0x140091b07
cmp r15d, 0xffffffff
je 0x140091436
cmp r15d, r13d
jl 0x140091b07
cmp r13d, 2
jne 0x14009144c
cmp r15d, 3
jne 0x14009144c
cmp ax, 0x3d
je 0x140091b07
cmp cl, 0x13
je 0x140091483
cmp cl, 0x4b
jne 0x140091472
mov r8, qword [rdx + 0x20]
cmp r8, 2
jb 0x140091472
mov rdi, qword [rdx + 0x18]
movzx edi, word [rdi + r8 - 2]
cmp edi, 0x7b24
je 0x1400914a5
cmp ax, 0x17
ja 0x14009149c
movzx eax, ax
bt r12, rax
jb 0x1400914a5
jmp 0x14009149c
cmp ax, 0x2e
ja 0x14009149c
movzx eax, ax
movabs rdi, 0x400000a80000
bt rdi, rax
jb 0x1400914a5
cmp cl, 0x4a
jne 0x14009162a
mov r15, qword [rsp + 0x20]
cmp cl, 0x13
je 0x1400914c8
cmp cl, 0x4b
jne 0x1400914cf
mov rax, qword [rdx + 0x20]
test rax, rax
je 0x1400914cf
mov rdi, qword [rdx + 0x18]
cmp byte [rdi], 0x7d
jne 0x1400914cf
jmp 0x1400914e8
cmp word [rdx + 0x10], 0x33
je 0x140091505
movzx eax, word [rdx + 0x10]
cmp rax, 0x18
ja 0x140091500
bt r14, rax
jae 0x140091500
cmp cl, 0x4b
jne 0x140091505
mov rax, qword [rdx + 0x20]
cmp rax, 2
jb 0x140091505
mov rdi, qword [rdx + 0x18]
movzx eax, word [rdi + rax - 2]
cmp eax, 0x7b24
jne 0x140091505
jmp 0x14009151e
cmp cl, 0x49
jne 0x14009151e
movzx eax, word [rdx + 0x10]
cmp rax, 0x17
ja 0x140091515
bt r12, rax
jb 0x14009151e
cmp cl, 0x4a
jne 0x1400915de
mov rax, qword [rdx + 0xd0]
nop word cs:[rax + rax]
nop
mov qword [rbx], rax
test rax, rax
je 0x140091560
cmp word [rax + 0x10], 4
jne 0x140091560
cmp byte [rax + 0x44], 0x32
mov rax, qword [rax + 0xd0]
je 0x140091530
test rax, rax
je 0x140091559
cmp dword [rax + 0x48], 0
jne 0x140091530
jmp 0x140091560
mov qword [rbx], 0
mov rcx, rsi
xor edx, edx
call fcn.140091040
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x1400918cb
mov cl, byte [rdx + 0x44]
cmp cl, 0x13
jne 0x1400914af
jmp 0x1400914c8
cmp cl, 0x49
je 0x140091419
jmp 0x140091427
mov r15d, 3
jmp 0x140091334
movzx ecx, word [rdx + 0x10]
cmp cx, 0x3e
je 0x1400915d6
cmp r9b, 0x1d
je 0x1400915d6
cmp r9b, 0x44
je 0x1400915d6
cmp cx, 4
setne r10b
xor r8b, 1
or r8b, r10b
jne 0x1400916de
cmp byte [rax + 0x44], 0x44
jne 0x1400916de
xor r15d, r15d
jmp 0x140091334
mov rax, qword [rdx + 0xd0]
mov qword [rbx], rax
test rax, rax
jne 0x1400915fe
jmp 0x1400918cb
mov qword [rbx], rax
test rax, rax
je 0x1400918cb
cmp word [rax + 0x10], 4
jne 0x1400916bb
cmp byte [rax + 0x44], 0x32
mov rax, qword [rax + 0xd0]
je 0x1400915f2
test rax, rax
je 0x140091b6f
cmp dword [rax + 0x48], 0
jne 0x1400915f2
jmp 0x1400916bb
cmp r15d, r13d
jne 0x140091645
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x14009164c
mov qword [rax + 0xb8], rdx
mov r15, qword [rbx]
jmp 0x14009164f
mov r15, qword [rsp + 0x20]
jmp 0x14009166d
mov r15, rdx
mov eax, dword [rsp + 0x28]
mov dword [r15 + 0xb4], eax
mov rdx, qword [rbx]
test rdx, rdx
je 0x1400918cb
add eax, 1
mov dword [rsp + 0x28], eax
mov rax, qword [rdx + 0xd0]
mov qword [rbx], rax
test rax, rax
jne 0x14009168d
jmp 0x1400918cb
mov qword [rbx], rax
test rax, rax
je 0x1400918cb
test r13d, r13d
jg 0x140091698
cmp dword [rax + 0x48], 0
jne 0x1400916bb
cmp word [rax + 0x10], 4
jne 0x1400916bb
cmp byte [rax + 0x44], 0x32
mov rax, qword [rax + 0xd0]
je 0x140091681
test rax, rax
je 0x140091b6f
cmp dword [rax + 0x48], 0
jne 0x140091681
mov rcx, rsi
mov edx, dword [rsp + 0x2c]
call fcn.140091040
mov rdx, qword [rsi + 0x10]
test rdx, rdx
mov eax, 0
jne 0x140091285
jmp 0x1400918d2
mov r10d, 1
cmp r9b, 0x42
je 0x140091331
mov rax, qword [rsi]
mov al, byte [rax + 0x1a3]
lea r8d, [rax - 3]
cmp r8b, 1
ja 0x14009179e
mov r10, qword [rsi + 8]
mov r11, qword [r10 + 0x120]
test r11, r11
je 0x14009173c
cmp cx, 1
je 0x140091730
lea edi, [rcx - 7]
mov r15d, 0
cmp di, 0xc
jb 0x140091733
mov r15, qword [rdx + 8]
jmp 0x140091733
xor r15d, r15d
cmp r15, r11
je 0x14009182b
cmp al, 4
jne 0x14009179e
mov rax, qword [r10 + 0x10]
mov r10, qword [r10 + 0x68]
test rax, rax
je 0x140091774
cmp cx, 1
je 0x140091768
lea edi, [rcx - 7]
mov r11d, 0
cmp di, 0xc
jb 0x14009176b
mov r11, qword [rdx + 8]
jmp 0x14009176b
xor r11d, r11d
cmp r11, rax
je 0x14009182b
test r10, r10
je 0x14009179e
cmp cx, 1
je 0x140091793
lea edi, [rcx - 7]
mov eax, 0
cmp di, 0xc
jb 0x140091795
mov rax, qword [rdx + 8]
jmp 0x140091795
xor eax, eax
cmp rax, r10
je 0x14009182b
cmp r9b, 6
je 0x14009180d
cmp cx, 0x41
je 0x14009180d
mov r10d, 0x11
cmp cx, 0x19
je 0x140091331
cmp cx, 0x24
je 0x140091331
mov r15d, 0xffffffff
cmp r8b, 1
ja 0x140091334
mov rdi, qword [rsi + 8]
mov r8, qword [rdi + 0x148]
mov rax, qword [rdi + 0x110]
mov r9, qword [rdi + 0x118]
test rax, rax
je 0x140091868
cmp cx, 1
je 0x14009185c
lea edi, [rcx - 7]
mov r10d, 0
cmp di, 0xc
jb 0x14009185f
mov r10, qword [rdx + 8]
jmp 0x14009185f
mov dl, 1
mov r8b, 1
call fcn.14015b120
mov rdx, qword [rbx]
test rdx, rdx
je 0x140091b7f
mov r15d, eax
jmp 0x140091334
mov r15d, 0xa
jmp 0x140091334
lea rcx, [rbp + 0x90]
add r8, 1
lea rdx, [rcx + 0x10]
mov r9d, 4
call fcn.1400290c0
mov r8d, dword [rbp + 0x98]
jmp 0x140091363
xor r10d, r10d
cmp r10, rax
je 0x1400915d6
test r9, r9
je 0x140091892
cmp cx, 1
je 0x140091887
lea edi, [rcx - 7]
mov eax, 0
cmp di, 0xc
jb 0x140091889
mov rax, qword [rdx + 8]
jmp 0x140091889
xor eax, eax
cmp rax, r9
je 0x1400915d6
test r8, r8
je 0x140091334
cmp cx, 1
je 0x1400918b5
add ecx, 0xfffffff9
mov eax, 0
cmp cx, 0xc
jb 0x1400918b7
mov rax, qword [rdx + 8]
jmp 0x1400918b7
xor eax, eax
mov r10d, 0
cmp rax, r8
jne 0x140091334
jmp 0x140091331
xor eax, eax
jmp 0x1400918d2
xor r15d, r15d
test r15, r15
je 0x1400910d3
test r13d, r13d
jg 0x1400918e9
test rax, rax
je 0x1400910d3
lea rcx, [rbp + 0x90]
mov eax, dword [rbp + 0x98]
mov edx, dword [rbp + 0x9c]
cmp r13d, 0x11
jne 0x1400919c7
cmp eax, edx
jae 0x140091c1a
mov rcx, qword [rbp + 0x90]
mov eax, eax
mov dword [rcx + rax*4], 0
add dword [rbp + 0x98], 1
mov rax, qword [rbx]
test rax, rax
je 0x1400910d3
mov rcx, qword [rax + 0xc8]
mov rax, rcx
cmp word [rcx + 0x10], 4
jne 0x14009194e
mov rcx, qword [rax + 0xc8]
test rcx, rcx
jne 0x140091938
add dword [rax + 0xb0], 1
jmp 0x1400910d3
mov qword [rbx], 0
xor ebp, ebp
mov rcx, rsi
mov edx, 4
call fcn.140091040
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1400910d3
cmp word [rax + 0x10], 0x3c
jne 0x1400910d3
mov rax, qword [rax + 0xd0]
mov qword [rbx], rax
test rax, rax
je 0x140091b1b
cmp word [rax + 0x10], 4
jne 0x140091b1b
cmp byte [rax + 0x44], 0x32
mov rax, qword [rax + 0xd0]
je 0x14009198f
test rax, rax
je 0x140091b14
cmp dword [rax + 0x48], 0
jne 0x14009198f
jmp 0x140091b1b
cmp eax, edx
jae 0x140091c38
mov rcx, qword [rbp + 0x90]
mov eax, eax
mov dword [rcx + rax*4], r13d
add dword [rbp + 0x98], 1
test r13d, r13d
jle 0x1400919ec
or byte [rbp + 0x40], 0x80
mov rax, qword [rbx]
test rax, rax
je 0x1400910d3
mov rcx, qword [rax + 0xc8]
mov rax, rcx
cmp word [rcx + 0x10], 4
jne 0x140091a15
mov rcx, qword [rax + 0xc8]
test rcx, rcx
jne 0x1400919ff
add dword [rax + 0xb0], 1
test r13d, r13d
jg 0x140091bff
jmp 0x1400910d3
mov qword [rbx], 0
mov rcx, rsi
mov edx, 0x11
call fcn.140091040
mov rsi, qword [rsp + 0x30]
mov eax, dword [rsp + 0x38]
test rax, rax
je 0x140091af0
lea rbp, [rsi + rax*8]
jmp 0x140091a66
add dword [rax + 0xb0], 1
cmp rbp, rsi
je 0x140091aeb
mov rdi, qword [rbp - 8]
mov r8d, dword [rdi + 0x98]
cmp r8d, dword [rdi + 0x9c]
jae 0x140091ac8
mov rax, qword [rdi + 0x90]
mov ecx, r8d
mov dword [rax + rcx*4], 0
add dword [rdi + 0x98], 1
add rbp, 0xfffffffffffffff8
mov rax, qword [rbx]
test rax, rax
je 0x140091a5d
mov rcx, qword [rax + 0xc8]
nop word cs:[rax + rax]
nop
mov rax, rcx
cmp word [rcx + 0x10], 4
jne 0x140091a56
mov rcx, qword [rax + 0xc8]
test rcx, rcx
jne 0x140091ab0
jmp 0x140091a56
lea rcx, [rdi + 0x90]
add r8, 1
lea rdx, [rcx + 0x10]
mov r9d, 4
call fcn.1400290c0
mov r8d, dword [rdi + 0x98]
jmp 0x140091a7a
mov rsi, qword [rsp + 0x30]
cmp rsi, r15
je 0x1400910d3
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x1400910d3
mov rax, rdx
mov r15, qword [rsp + 0x20]
jmp 0x1400918d2
mov qword [rbx], 0
mov rcx, rsi
mov edx, 2
call fcn.140091040
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1400910d3
cmp byte [rax + 0x44], 0xa
jne 0x1400910d3
mov rax, qword [rax + 0xd0]
mov qword [rbx], rax
test rax, rax
je 0x140091b92
cmp word [rax + 0x10], 4
jne 0x140091b92
cmp byte [rax + 0x44], 0x32
mov rax, qword [rax + 0xd0]
je 0x140091b46
test rax, rax
je 0x140091b8b
cmp dword [rax + 0x48], 0
jne 0x140091b46
jmp 0x140091b92
mov qword [rbx], 0
xor eax, eax
jmp 0x1400918d2
xor ebp, ebp
xor eax, eax
mov r15, qword [rsp + 0x20]
jmp 0x1400918d2
mov qword [rbx], 0
mov rcx, rsi
mov edx, 2
call fcn.140091040
mov r8d, dword [rbp + 0x98]
cmp r8d, dword [rbp + 0x9c]
jae 0x140091c56
mov rax, qword [rbp + 0x90]
mov ecx, r8d
mov dword [rax + rcx*4], 3
add dword [rbp + 0x98], 1
or byte [rbp + 0x40], 0x80
mov rax, qword [rbx]
test rax, rax
je 0x1400910d3
mov rcx, qword [rax + 0xc8]
mov rax, rcx
cmp word [rcx + 0x10], 4
jne 0x140091bf8
mov rcx, qword [rax + 0xc8]
test rcx, rcx
jne 0x140091be2
add dword [rax + 0xb0], 1
or byte [rax + 0x41], 1
jmp 0x1400910d3
xor ebp, ebp
xor eax, eax
test r13d, r13d
jle 0x1400918e0
jmp 0x1400918e9
lea r8, [rax + 1]
lea rdx, [rcx + 0x10]
mov r9d, 4
call fcn.1400290c0
mov eax, dword [rbp + 0x98]
jmp 0x14009190e
lea r8, [rax + 1]
lea rdx, [rcx + 0x10]
mov r9d, 4
call fcn.1400290c0
mov eax, dword [rbp + 0x98]
jmp 0x1400919cf
lea rcx, [rbp + 0x90]
add r8, 1
lea rdx, [rcx + 0x10]
mov r9d, 4
call fcn.1400290c0
mov r8d, dword [rbp + 0x98]
jmp 0x140091bb3