Function at 0x14003e98c
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x30
mov rsi, qword [rcx + 0x110]
xor edx, edx
mov rbx, rcx
mov r15b, byte [rsi + 0x72]
lea r8d, [rdx + 0x40]
mov ebp, dword [rsi + 0xc]
and dword [rcx + 0xac], 0
and dword [rcx + 0xb0], 0
and dword [rcx + 0xb4], 0
mov dword [rcx + 0xa8], 0xffffffe7
add rcx, 0x158
mov byte [rsp + 0x20], r15b
call fcn.14005cbb0
mov eax, 0xffff0000
mov r11d, 0x1f
mov ecx, 0x20
mov rdi, rbx
rep stosd dword [rdi], eax
mov rcx, qword [rbx + 0x90]
lea r13d, [r11 - 0x1e]
mov eax, dword [rsi + 0x28]
lea r14d, [r11 - 0x17]
lea r8, [rcx + 0x40000]
lea rdi, [rcx + rax*8]
cmp rdi, r8
jae 0x14003ea57
mov r15d, 0xff
movzx ecx, byte [rdi + 4]
mov edx, 0x605fd9
and ecx, r11d
mov word [rdi + 6], r15w
shr edx, cl
test r13b, dl
je 0x14003ea4a
cmp byte [rdi + 5], 0x1b
je 0x14003ea4a
and dword [rdi], 0
add rdi, r14
add rdi, r14
cmp rdi, r8
jb 0x14003ea26
mov r15b, byte [rsp + 0x20]
mov eax, 0x82
mov word [r8 + 6], ax
mov rcx, qword [rbx + 0x90]
mov rdx, qword [rbx + 0x118]
mov dword [rbx + 0xd8], ebp
mov dword [rbx + 0xd4], ebp
movzx eax, word [rsi + 0xa]
lea rdi, [rcx + 0x40008]
and dword [rbx + 0xe4], 0
mov esi, 0x80
mov dword [rbx + 0xdc], eax
mov eax, 0x8000
mov dword [rbx + 0xcc], eax
mov dword [rbx + 0xd0], ebp
mov dword [rbx + 0xc8], ebp
lea r10d, [rsi - 0x7e]
test rdx, rdx
je 0x14003eb57
mov rcx, qword [rbx + 0x98]
mov r9, rdi
mov r8d, dword [rcx + 0xbcc]
call fcn.140031690
mov rcx, rax
mov rdx, rax
sub rcx, rdi
and rcx, 0xfffffffffffffff8
cmp rcx, 0x7d0
jg 0x14003ef49
mov rcx, qword [rbx + 0x90]
lea r8, [rbx + 0x198]
sub rax, rcx
lea r10d, [rsi - 0x7e]
sub rax, r14
sar rax, 3
mov dword [rbx + 0xcc], eax
cmp rdi, rdx
jae 0x14003eb51
lea r13d, [rsi + 0x7f]
movzx eax, word [rdi + 6]
mov ecx, 0x100
mov word [r8], ax
add r8, r10
cmp ax, cx
jae 0x14003eb35
and ax, 0x7f
or ax, si
jmp 0x14003eb38
mov eax, r13d
mov word [rdi + 6], ax
add rdi, r14
cmp rdi, rdx
jb 0x14003eb17
mov rcx, qword [rbx + 0x90]
mov r13d, 1
mov r11d, 0x1f
mov rax, rbp
mov dword [rbx + 0xc0], r14d
lea rbp, [rcx + rbp*8]
xor esi, esi
cmp rdi, rbp
jae 0x14003ef13
mov edx, 0xfd
mov r8d, 0x3f0f07
lea r9d, [rdx - 0x6d]
test r15b, r15b
je 0x14003eb9c
mov al, byte [rdi + 6]
cmp al, 0xfe
je 0x14003eef5
cmp al, dl
jne 0x14003eb9c
mov byte [rdi + 6], 0xfe
jmp 0x14003eef5
movzx ecx, byte [rdi + 5]
cmp ecx, 0x54
ja 0x14003ed73
cmp ecx, 0x51
jae 0x14003edc9
cmp ecx, 0x34
ja 0x14003ecf5
je 0x14003ecc1
cmp ecx, 0x10
je 0x14003ec9c
cmp ecx, 0x11
je 0x14003ec94
cmp ecx, 0x23
jbe 0x14003ed2a
cmp ecx, 0x26
jbe 0x14003ec4a
cmp ecx, 0x28
jbe 0x14003ec57
cmp ecx, 0x2b
jbe 0x14003ed2a
cmp ecx, 0x2d
jbe 0x14003ec1c
cmp ecx, 0x2e
jne 0x14003ed2a
mov al, byte [rdi + 4]
and al, r11b
cmp al, 0xe
jne 0x14003ec1c
test esi, esi
je 0x14003ec12
or dword [rbx + 0xac], r8d
mov word [rdi + 6], r9w
jmp 0x14003eef5
mov al, byte [rdi + 4]
and al, r11b
cmp al, 0xe
je 0x14003eeec
mov eax, 0x80
mov word [rdi + 6], ax
test esi, esi
je 0x14003eef5
or dword [rbx + 0xac], 0xf07
jmp 0x14003eef5
test byte [rbx + 0xb8], 0x40
jne 0x14003eeec
mov eax, 0x8000
cmp word [rdi + 2], ax
jb 0x14003eeec
movzx eax, word [rdi + 2]
mov rcx, qword [rbx + 0x90]
cmp byte [rcx + rax*8 + 6], dl
jb 0x14003eeec
mov byte [rcx + rax*8 + 6], 0x81
test esi, esi
je 0x14003eeec
or dword [rbx + 0xac], r10d
jmp 0x14003eeec
mov esi, r13d
jmp 0x14003eeec
mov al, byte [rdi - 3]
cmp al, 0x5f
je 0x14003ecae
sub al, 0x61
cmp al, r10b
ja 0x14003eeec
mov eax, 0x80
mov word [rdi - 2], ax
mov eax, 0x82
jmp 0x14003eef1
cmp word [rdi + 2], r10w
ja 0x14003ec07
test byte [rbx + 0xb8], 0x20
jne 0x14003eeec
mov word [rdi + 6], r9w
test esi, esi
je 0x14003eef5
or dword [rbx + 0xac], 0xf0001
jmp 0x14003eef5
cmp ecx, 0x3b
je 0x14003edc9
cmp ecx, 0x41
jbe 0x14003ed2a
cmp ecx, 0x44
jbe 0x14003eeec
cmp ecx, 0x46
je 0x14003eeec
cmp ecx, 0x48
je 0x14003eeec
lea eax, [rcx - 0x4f]
cmp eax, r13d
jbe 0x14003edc9
mov eax, 0x8000
cmp word [rdi + 2], ax
jae 0x14003eeec
cmp word [rdi], ax
jb 0x14003eeec
movzx ecx, word [rdi]
mov rax, qword [rbx + 0x90]
movzx edx, word [rax + rcx*8 + 6]
mov ecx, 0xff
movzx eax, dx
and ax, cx
mov ecx, 0xfd
cmp ax, cx
jae 0x14003eeec
mov word [rdi + 6], dx
jmp 0x14003eef5
cmp ecx, 0x5d
ja 0x14003ede6
je 0x14003edc9
sub ecx, 0x56
je 0x14003edc9
sub ecx, 1
je 0x14003edc9
sub ecx, r10d
je 0x14003eee1
sub ecx, r10d
je 0x14003ed9d
cmp ecx, 1
je 0x14003eeec
jmp 0x14003ed2a
mov al, byte [rdi + 4]
and al, r11b
sub al, 0xd
cmp al, r13b
jbe 0x14003eeec
movzx eax, word [rdi + 2]
and ax, r11w
sub ax, 0xd
cmp ax, r13w
ja 0x14003ed2a
jmp 0x14003eeec
mov eax, 0x80
mov word [rdi + 6], ax
test esi, esi
je 0x14003eef5
mov dword [rbx + 0xac], r8d
jmp 0x14003eef5
cmp ecx, 0x5e
je 0x14003eee1
jbe 0x14003ed2a
cmp ecx, 0x60
jbe 0x14003ee85
cmp ecx, 0x61
je 0x14003ee6b
cmp ecx, 0x62
je 0x14003ee85
cmp ecx, 0x63
jne 0x14003ed2a
mov rdx, rdi
mov rcx, rbx
call fcn.140039d70
movzx ecx, al
add ecx, ecx
cmp ecx, dword [rbx + 0xc0]
jle 0x14003ee2f
mov dword [rbx + 0xc0], ecx
mov al, byte [rdi + 4]
mov r11d, 0x1f
and al, r11b
sub al, 0xd
cmp al, r13b
lea eax, [r11 + 0x61]
lea r9d, [r11 + 0x71]
ja 0x14003ee4d
mov eax, r9d
mov word [rdi + 6], ax
mov r8d, 0x3f0f07
test esi, esi
je 0x14003eef5
or dword [rbx + 0xac], r8d
jmp 0x14003eef5
cmp word [rdi + 2], 0x25
jne 0x14003ee85
cmp dword [rbx + 0xc0], 0xc
jge 0x14003ee85
mov dword [rbx + 0xc0], 0xc
movzx ecx, word [rdi + 2]
lea rdx, [0x1400a28a8]
add rcx, rcx
movzx eax, byte [rdx + rcx*8]
add eax, eax
cmp eax, dword [rbx + 0xc0]
jle 0x14003eea7
mov dword [rbx + 0xc0], eax
mov al, byte [rdi + 4]
and al, r11b
sub al, 0xd
cmp al, r13b
mov eax, 0x80
ja 0x14003eebc
mov eax, r9d
mov word [rdi + 6], ax
test esi, esi
je 0x14003eef5
mov eax, dword [rdx + rcx*8]
and eax, 0x400
neg eax
sbb ecx, ecx
and ecx, 0xffc10000
add ecx, r8d
or dword [rbx + 0xac], ecx
jmp 0x14003eef5
test esi, esi
je 0x14003eeec
mov dword [rbx + 0xac], r8d
mov eax, 0xff
mov word [rdi + 6], ax
add rdi, r14
mov edx, 0xfd
mov r10d, 2
cmp rdi, rbp
jb 0x14003eb7f
mov r14d, dword [rbx + 0xc0]
test r13b, r14b
je 0x14003ef2b
lea eax, [r14 + 1]
mov dword [rbx + 0xc4], r14d
mov dword [rbx + 0xc0], eax
jmp 0x14003ef32
and dword [rbx + 0xc4], 0
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret
mov rcx, qword [rbx + 0x98]
mov edx, 0x22
call fcn.14001506c
int3