Function at 0x140028bb0
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xb0
mov r13, rcx
mov ebp, edx
lea r12, [rsp + 0x41]
mov rdi, r12
mov r8, qword [r13]
mov al, byte [r8]
lea r14, [r8 + 1]
movsx esi, byte [r14]
movzx ecx, sil
mov byte [rsp + 0x40], al
call fcn.1400b45c0
test eax, eax
je 0x140028c09
inc r14
mov byte [rdi], sil
inc rdi
movsx esi, byte [r14]
movzx ecx, sil
call fcn.1400b45c0
test eax, eax
jne 0x140028bef
mov byte [rdi], 0
cmp esi, 0x5c
je 0x140029349
cmp ebp, 1
je 0x1400291ff
test ebp, ebp
je 0x140028e1c
cmp ebp, 2
jne 0x140028cd1
mov al, byte [rsp + 0x40]
cmp al, 0x73
je 0x140028ebe
cmp al, 0x63
je 0x140028cb0
cmp al, 0x64
je 0x140028c8f
cmp al, 0x78
je 0x140028c8f
cmp al, 0x25
je 0x140028e84
mov rsi, rsp
mov r8d, 0xffffffff
mov ecx, 1
xor edx, edx
mov r9d, r8d
lea rax, str.driver
lea rbp, [rsp + 0x40]
mov qword [rsi + 0x20], 0
mov dword [rsi + 0x28], 0x32c9
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rbp
call fcn.14003c820
jmp 0x140028ea0
mov ecx, 1
call fcn.140084028
mov rcx, rax
lea rdx, str._val_
xor r8d, r8d
call fcn.1400293a0
jmp 0x140028ea0
mov ecx, 1
call fcn.140084028
mov rcx, rax
lea rdx, str._char_
xor r8d, r8d
call fcn.1400293a0
jmp 0x140028ea0
cmp ebp, 1
jne 0x140028d64
movsx eax, byte [rsp + 0x40]
cmp eax, 0x41
je 0x140028eb7
cmp eax, 0x21
je 0x140028d43
add eax, 0xffffffad
test eax, 0xfffffffd
jne 0x140028d03
cmp byte [r12], 0x4c
je 0x140028c8f
jmp 0x140028ea0
mov rsi, rsp
mov r8d, 0xffffffff
mov ecx, 1
xor edx, edx
mov r9d, r8d
lea rax, str.Fortran
lea rbp, [rsp + 0x40]
mov qword [rsi + 0x20], 0
mov dword [rsi + 0x28], 0x32c9
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rbp
call fcn.14003c820
jmp 0x140028ea0
mov ecx, 1
call fcn.140084028
mov rcx, rax
lea rdx, [0x140252312]
xor r8d, r8d
call fcn.1400293a0
jmp 0x140028ea0
movsx edx, byte [rsp + 0x40]
add edx, 0xffffffdb
cmp edx, 0x53
ja 0x140028ddc
lea rcx, [0x140000000]
movzx eax, word [rcx + rdx*2 + 0x252534]
lea rax, [rcx + rax + 0x28c8f]
jmp rax
mov rsi, rsp
mov r8d, 0xffffffff
mov ecx, 1
xor edx, edx
mov r9d, r8d
lea rax, str.generic
lea rbp, [rsp + 0x40]
mov qword [rsi + 0x20], 0
mov dword [rsi + 0x28], 0x32c9
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rbp
call fcn.14003c820
jmp 0x140028ea0
movsx eax, byte [rsp + 0x40]
lea edx, [rax - 0x54]
cmp edx, 0x20
ja 0x140028e42
lea rcx, [0x140000000]
movzx eax, word [rcx + rdx*2 + 0x2525dc]
lea rax, [rcx + rax + 0x28c8f]
jmp rax
cmp eax, 0x25
je 0x140028e84
mov rsi, rsp
mov r8d, 0xffffffff
mov ecx, 1
xor edx, edx
mov r9d, r8d
lea rax, [0x140252314]
lea rbp, [rsp + 0x40]
mov qword [rsi + 0x20], 0
mov dword [rsi + 0x28], 0x32c9
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rbp
call fcn.14003c820
jmp 0x140028ea0
mov ecx, 1
call fcn.140084028
mov rcx, rax
lea rdx, [0x140252318]
xor r8d, r8d
call fcn.1400293a0
mov qword [r13], r14
add rsp, 0xb0
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
cmp byte [r12], 0x44
jne 0x140028ea0
xor ecx, ecx
inc ecx
call fcn.140084028
mov rcx, rax
lea rdx, str.xxxx
xor r8d, r8d
call fcn.1400293a0
jmp 0x140028ea0
lea rsi, str._OMP
lea rdi, [rsp + 0x40]
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x14002922d
test dl, dl
je 0x140029229
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x14002922d
add rdi, 2
add rsi, 2
test dl, dl
jne 0x14002920b
xor eax, eax
jmp 0x140029232
sbb eax, eax
or eax, 1
test eax, eax
je 0x14002931e
lea rsi, [0x140252372]
lea rdi, [rsp + 0x40]
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x140029268
test dl, dl
je 0x140029264
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x140029268
add rdi, 2
add rsi, 2
test dl, dl
jne 0x140029246
xor eax, eax
jmp 0x14002926d
sbb eax, eax
or eax, 1
test eax, eax
je 0x14002931e
lea rsi, [0x140252376]
lea rdi, [rsp + 0x40]
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x1400292a3
test dl, dl
je 0x14002929f
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x1400292a3
add rdi, 2
add rsi, 2
test dl, dl
jne 0x140029281
xor eax, eax
jmp 0x1400292a8
sbb eax, eax
or eax, 1
test eax, eax
je 0x14002931e
lea rsi, [0x140252379]
lea rdi, [rsp + 0x40]
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x1400292da
test dl, dl
je 0x1400292d6
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x1400292da
add rdi, 2
add rsi, 2
test dl, dl
jne 0x1400292b8
xor eax, eax
jmp 0x1400292df
sbb eax, eax
or eax, 1
test eax, eax
je 0x14002931e
lea rsi, [0x14025237d]
lea rdi, [rsp + 0x40]
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x140029311
test dl, dl
je 0x14002930d
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x140029311
add rdi, 2
add rsi, 2
test dl, dl
jne 0x1400292ef
xor eax, eax
jmp 0x140029316
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140028c1e
lea rsi, [rsp + 0x40]
test rsi, rsi
je 0x140028c1e
mov ecx, 1
call fcn.140084028
mov rcx, rax
mov rdx, rsi
xor r8d, r8d
call fcn.1400293a0
jmp 0x140028ea0
cmp byte [r14 + 1], 0x3d
jne 0x140028c15
cmp byte [r14 + 2], 0x27
jne 0x140028c15
lea rcx, [r14 + 3]
mov al, byte [rcx]
mov rsi, rcx
cmp al, 0x27
je 0x140029379
test al, al
je 0x140029379
inc rcx
mov al, byte [rcx]
cmp al, 0x27
jne 0x14002936c
mov byte [rcx], 0
lea r14, [rcx + 1]
jmp 0x140029323