Function at 0x140028ed0
Capabilities:
Parse credit card information

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x48], r9d
mov r11, rdx
mov qword [rsp + 0x60], r8
mov rdi, rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x68], rdx
test rcx, rcx
je 0x1400292eb
test rdx, rdx
je 0x1400292eb
cmp rcx, rdx
je 0x1400292eb
movzx ebx, byte [rcx]
lea r15, [rcx + 1]
mov ebp, dword [rsp + 0xf0]
xor r13d, r13d
mov r10d, r9d
mov eax, 1
add r10, rdx
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r13d
mov esi, r13d
mov qword [rsp + 0x50], r10
mov r14d, eax
mov qword [rsp + 0x70], r15
mov r8d, r13d
mov r12d, r13d
test bl, bl
je 0x140029296
mov rdx, r15
nop
cmp esi, r9d
cmove r14d, r13d
cmp bl, 0x3a
jne 0x140029032
test bpl, bpl
jns 0x1400290f6
test r12d, r12d
jne 0x1400290f6
test r14d, r14d
je 0x140029029
mov eax, esi
mov rcx, rdi
sub rcx, rax
mov byte [rdi], r13b
cmp rcx, r11
jb 0x1400292eb
cmp rcx, r10
ja 0x1400292eb
mov rdx, r10
sub rdx, rcx
inc rdx
call fcn.1401b80c0
test eax, eax
je 0x140028fee
cmp eax, 0xc
je 0x1400292e0
cmp eax, 0x16
je 0x1400292f6
cmp eax, 0x22
je 0x1400292f6
cmp eax, 0x50
jne 0x1400292eb
cmp esi, 4
jne 0x140029024
lea rdx, [rdi - 4]
mov r8d, esi
lea rcx, [0x1401fa350]
call fcn.1401b8130
mov r8d, dword [rsp + 0x44]
lea r12d, [rsi + 1]
test eax, eax
mov eax, 1
cmove r8d, eax
mov dword [rsp + 0x44], r8d
jmp 0x1400290f6
mov r8d, dword [rsp + 0x44]
lea r12d, [rsi + 1]
jmp 0x1400290f6
cmp bl, 0x25
jne 0x1400290e3
test bpl, 4
je 0x1400290f6
movzx ecx, byte [r15]
test cl, cl
je 0x140029296
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x140029061
movzx ebx, cl
sub bx, 0x30
jmp 0x140029083
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x140029071
movzx ebx, cl
sub bx, 0x37
jmp 0x140029083
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x140029291
movzx ebx, cl
sub bx, 0x57
test bx, bx
js 0x140029291
movzx ecx, byte [rdx + 1]
shl bl, 4
test cl, cl
je 0x140029296
lea eax, [rcx - 0x30]
lea r15, [rdx + 2]
mov qword [rsp + 0x70], r15
cmp al, 9
ja 0x1400290b4
movzx eax, cl
sub ax, 0x30
jmp 0x1400290d6
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x1400290c4
movzx eax, cl
sub ax, 0x37
jmp 0x1400290d6
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x140029291
movzx eax, cl
sub ax, 0x57
test ax, ax
js 0x140029291
add bl, al
jmp 0x1400290f6
cmp bl, 0x3f
je 0x1400290ed
cmp bl, 0x23
jne 0x1400290f6
test bpl, 0x20
je 0x1400290f6
or ebp, 2
mov eax, ebp
and al, 0x82
cmp al, 0x80
jne 0x14002916f
cmp bl, 0x5c
jne 0x140029121
test r12d, r12d
jne 0x14002910e
bt ebp, 8
jae 0x14002916f
test r14d, r14d
je 0x14002916f
test r8d, r8d
je 0x14002911d
cmp esi, 7
jae 0x14002916f
mov bl, 0x2f
jmp 0x14002916f
cmp bl, 0x2e
jne 0x14002916f
test esi, esi
je 0x14002916f
test bpl, 8
jne 0x14002916f
mov dword [rsp + 0x30], r12d
lea rax, [rsp + 0x40]
mov dword [rsp + 0x28], ebp
lea rdx, [rdi - 1]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r8d, esi
lea rcx, [rsp + 0x68]
call fcn.1400295b0
mov esi, dword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
test eax, eax
jne 0x140029262
movzx r10d, bl
lea eax, [r10 - 0x20]
cmp eax, 0x5d
ja case.0x140029197.33
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x2930c]
mov ecx, dword [rdx + rax*4 + 0x29304]
add rcx, rdx
jmp rcx
lea eax, [rbx - 0x20]
cmp al, 0x5e
jbe 0x14002924d
test bpl, 2
jne 0x14002924d
test bpl, 0x10
je 0x1400291bd
cmp bl, 0x20
jne 0x14002924d
test bpl, 8
je 0x1400291cc
cmp bl, 0x2e
je 0x14002924d
test bpl, 0x40
jne 0x1400291d7
cmp bl, 0x25
je 0x14002924d
mov eax, dword [rsp + 0x48]
add eax, 0xfffffffd
cmp esi, eax
jb 0x1400291ea
mov r14d, r13d
add esi, 2
jmp 0x14002925c
test r14d, r14d
je 0x140029248
mov byte [rdi], 0x25
lea rdx, [rdi + 1]
cmp bl, 0x10
jae 0x140029201
mov byte [rdx], 0x30
inc rdx
mov r8, qword [rsp + 0x50]
mov r9d, ILIsEqual
sub r8, rdx
mov ecx, r10d
call fcn.1401b84b0
test eax, eax
je 0x14002923f
cmp eax, 0xc
je 0x1400292e0
cmp eax, 0x16
je 0x1400292f6
cmp eax, 0x22
je 0x1400292f6
cmp eax, 0x50
jne 0x1400292eb
add rdi, 3
mov qword [rsp + 0x68], rdi
add esi, 2
jmp 0x14002925c
test r14d, r14d
je 0x14002925c
mov byte [rdi], bl
inc rdi
mov qword [rsp + 0x68], rdi
inc esi
mov dword [rsp + 0x40], esi
movzx eax, byte [r15]
inc r15
mov r9d, dword [rsp + 0x48]
mov rdx, r15
mov qword [rsp + 0x70], r15
movzx ebx, al
test al, al
je 0x140029296
mov r8d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
jmp 0x140028f70
mov r14d, r13d
jmp 0x1400292a3
test r14d, r14d
je 0x1400292a3
cmp esi, r9d
jae 0x1400292a3
mov byte [rdi], r13b
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1400292b2
lea ecx, [rsi + 1]
mov dword [rax], ecx
lea ecx, [rsi + 1]
cmp ecx, r9d
cmovbe r13d, r14d
mov eax, r13d
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140160a40
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x8007000e
call fcn.14000ca90
int3
mov ecx, 0x80004005
call fcn.14000ca90
int3
mov ecx, 0x80070057
call fcn.14000ca90
int3