Function at 0x140365380
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov r14, rcx
mov rsi, rdx
mov rbp, r8
mov ebx, r9d
mov edi, dword [rsp + 0x90]
xor r15d, r15d
xor r13d, r13d
xor r12d, r12d
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x140365588
xor r8d, r8d
test dword [rax + 0x10], 0x10000000
setne r8b
mov dword [rsp + 0x24], r8d
mov eax, dword [rbp]
cmp eax, ebx
jge 0x140365490
movsxd rcx, eax
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x1f
jle 0x140365545
cmp ecx, 0x7f
jge 0x140365640
cmp ecx, 0x7e
jg 0x140365651
movzx r10d, di
cmp ecx, r10d
je 0x140365490
cmp r10d, 0x3f
jne 0x140365415
cmp ecx, 0x23
je 0x140365735
cmp ecx, 0x3f
je 0x140365753
cmp ecx, 0x23
je 0x140365792
cmp ecx, 0x2f
je 0x1403654bd
cmp ecx, 0x5c
je 0x1403654bd
cmp ecx, 0x2e
je 0x1403654f8
cmp ecx, 0x22
jle 0x14036557d
cmp ecx, 0x5b
jl 0x140365459
cmp ecx, 0x5e
jle 0x140365563
cmp ecx, 0x3e
je 0x140365563
cmp ecx, 0x3c
je 0x140365563
cmp ecx, 0x60
je 0x140365563
cmp ecx, 0x7b
jge 0x1403655c6
cmp ecx, 0x25
je 0x1403655d0
inc eax
cmp eax, ebx
jl 0x1403653d7
test r12d, r12d
jne 0x1403655b8
or r15d, 2
test r13d, r13d
jne 0x1403654a6
or r15d, 1
mov dword [rbp], eax
mov eax, r15d
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
test r15b, 0x10
jne 0x1403654cc
cmp ecx, 0x5c
je 0x14036555a
test r15b, 4
jne 0x140365486
lea ecx, [rax + 1]
cmp ecx, ebx
je 0x140365486
lea r10d, [rax + 1]
movsxd rcx, r10d
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x2f
je 0x1403657ca
cmp ecx, 0x5c
je 0x1403657ca
jmp 0x140365486
test r15b, 4
jne 0x140365509
lea ecx, [rax + 1]
cmp ecx, ebx
je 0x1403657ca
lea ecx, [rax + 1]
movsxd rcx, ecx
movzx ecx, word [rsi + rcx*2]
cmp ecx, 0x2e
je 0x1403657ca
cmp ecx, 0x2f
je 0x1403657ca
cmp ecx, 0x5c
je 0x1403657ca
cmp ecx, 0x3f
je 0x1403657ca
cmp ecx, 0x23
je 0x1403657ca
jmp 0x140365486
mov r13d, 1
mov r12d, 1
or r15d, 0x20
jmp 0x140365486
or r15d, 0x10
jmp 0x1403654cc
test r13d, r13d
je 0x140365593
movabs rcx, 0x200000000
test qword [r14 + 0x28], rcx
jne 0x14036559b
jmp 0x140365486
cmp ecx, 0x21
je 0x14036544b
jmp 0x140365563
mov r8d, 1
jmp 0x1403653c7
mov r13d, 1
jmp 0x140365568
or r15d, 0x40
jmp 0x140365486
test r13d, r13d
jne 0x140365486
mov r13d, 1
jmp 0x140365486
test r13d, r13d
jne 0x1403654a6
jmp 0x1403654a2
cmp ecx, 0x7d
jle 0x1403655ad
jmp 0x14036547d
test r12d, r12d
jne 0x1403655db
mov r12d, 1
lea ecx, [rax + 2]
cmp ecx, ebx
jge 0x1403655a4
lea ecx, [rax + 1]
movsxd rcx, ecx
movzx edx, word [rsi + rcx*2]
mov ecx, edx
mov dword [rsp + 0x20], eax
lea edx, [rax + 2]
movsxd rdx, edx
movzx edx, word [rsi + rdx*2]
call fcn.14036a440
mov ecx, eax
cmp ecx, 0xffff
je 0x140365632
cmp ecx, 0x2e
je 0x14036561a
cmp ecx, 0x2f
je 0x14036561a
cmp ecx, 0x5c
jne 0x140365621
or r15d, 0x80
mov eax, dword [rsp + 0x20]
add eax, 2
mov r8d, dword [rsp + 0x24]
jmp 0x140365486
mov eax, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x24]
jmp 0x1403655a4
cmp ecx, 0x9f
jg 0x1403653f0
jmp 0x140365545
test r8d, r8d
je 0x140365722
or r15d, 8
lea edx, [rcx - 0xd800]
cmp edx, 0x3ff
ja 0x1403656d7
lea edx, [rax + 1]
cmp edx, ebx
jge 0x14036571e
lea edx, [rax + 1]
movsxd rdx, edx
movzx edx, word [rsi + rdx*2]
add ecx, 0xffff2800
lea r10d, [rdx - 0xdc00]
or r10d, ecx
cmp r10d, 0x3ff
ja 0x1403656ab
shl ecx, 0xa
lea ecx, [rcx + rdx + 0x2400]
mov edx, 1
jmp 0x1403656af
xor ecx, ecx
xor edx, edx
test edx, edx
je 0x1403656d3
movzx edx, cx
cmp edx, 0xfffe
jge 0x1403656d3
add ecx, 0xfff20000
cmp ecx, 0x1000
jb 0x1403656d3
mov ecx, 1
jmp 0x1403656d5
xor ecx, ecx
jmp 0x14036571a
lea edx, [rcx - 0xa0]
cmp edx, 0xd75f
jbe 0x140365715
lea edx, [rcx - 0xf900]
cmp edx, 0x4cf
jbe 0x140365715
lea edx, [rcx - 0xfdf0]
cmp edx, 0x1ff
jbe 0x140365715
add ecx, 0xffff2000
cmp ecx, 0x18ff
setbe cl
movzx ecx, cl
jmp 0x14036571a
mov ecx, 1
test ecx, ecx
jne 0x140365722
or r15d, 0x40
test r13d, r13d
mov r8d, dword [rsp + 0x24]
jne 0x140365486
jmp 0x1403655ad
cmp qword [r14 + 0x18], 0
je 0x140365415
mov rdx, qword [r14 + 0x18]
test byte [rdx + 0x10], 0x40
jne 0x140365490
jmp 0x140365415
test dword [r14 + 0x28], 0x20000000
jne 0x140365783
cmp qword [r14 + 0x18], 0
je 0x140365486
mov rcx, qword [r14 + 0x18]
test byte [rcx + 0x10], 0x20
jne 0x140365486
cmp r10d, 0xfffe
je 0x140365486
or r15d, 0x20
mov r12d, 1
jmp 0x1403655ad
mov r13d, 1
test dword [r14 + 0x28], 0x20000000
jne 0x1403657bb
cmp qword [r14 + 0x18], 0
je 0x140365486
mov rcx, qword [r14 + 0x18]
test byte [rcx + 0x10], 0x40
jne 0x140365486
or r15d, 0x20
mov r12d, 1
jmp 0x140365486
or r15d, 4
jmp 0x140365486