Function at 0x140059140
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x40
test byte [rcx + 0xc], 4
mov r10d, dword [rcx + 8]
mov r12, r9
mov r9, qword [rcx + 0x10]
mov ebx, r10d
mov rbp, r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0x60], rbx
mov r11, r9
jne 0x14005917b
mov eax, dword [rcx]
jmp 0x14005917f
movzx eax, byte [rcx + 5]
add eax, 0xfffffff4
cmp eax, 0x12
ja case.0x14005919c.13
lea rcx, [0x140000000]
mov edx, dword [rcx + rax*4 + 0x595d0]
add rdx, rcx
jmp rdx
xor r8d, r8d
mov rdx, rbx
mov rcx, r9
call fcn.14000cf10
mov r11d, eax
test eax, eax
jns 0x14005920e
mov rax, qword [rdi + 0x10]
lea r8, str._s:_Bad_UTF_8_encoding___Rrc___.Rhxs_
mov r9, rbp
mov qword [rsp + 0x30], rax
mov eax, dword [rdi + 8]
mov edx, 0xffffa6ee
mov dword [rsp + 0x28], eax
mov rcx, rsi
mov dword [rsp + 0x20], r11d
call fcn.140014b50
jmp 0x1400595bd
test r10d, r10d
je 0x14005920e
nop dword [rax]
movsx r8d, byte [r11]
dec r10d
inc r11
lea eax, [r8 - 0x30]
cmp eax, 0xa
jb 0x140059209
cmp r8b, 0x20
jne 0x14005921e
test r10d, r10d
jne 0x1400591f0
test r12, r12
je 0x140059217
mov qword [r12], rbx
xor eax, eax
jmp 0x1400595bd
mov ecx, dword [rdi + 8]
mov qword [rsp + 0x38], r9
movsx eax, r8b
mov dword [rsp + 0x30], ecx
mov edx, ecx
lea r8, str._s:_Bad_numeric_string:_ch_x__pos__u_in__.Rhxs_
sub edx, r10d
mov r9, rbp
mov rcx, rsi
inc edx
mov dword [rsp + 0x28], edx
mov edx, 0xffffa6ed
mov dword [rsp + 0x20], eax
call fcn.140014b50
jmp 0x1400595bd
test r10d, r10d
je 0x14005920e
nop
movsx edx, byte [r11]
dec r10d
inc r11
lea eax, [rdx - 0x30]
mov ecx, edx
cmp eax, 0xa
jb 0x1400592c0
lea eax, [rdx - 0x61]
cmp eax, 0x1a
jb 0x1400592c0
lea eax, [rdx - 0x41]
cmp eax, 0x1a
jb 0x1400592c0
cmp dl, 0x20
je 0x1400592c0
cmp dl, 0x27
je 0x1400592c0
cmp dl, 0x28
je 0x1400592c0
cmp dl, 0x29
je 0x1400592c0
cmp dl, 0x2b
je 0x1400592c0
cmp dl, 0x2c
je 0x1400592c0
cmp dl, 0x2d
je 0x1400592c0
cmp dl, 0x2e
je 0x1400592c0
cmp dl, 0x2f
je 0x1400592c0
cmp dl, 0x3a
je 0x1400592c0
cmp dl, 0x3d
je 0x1400592c0
cmp dl, 0x3f
jne 0x1400592ca
test r10d, r10d
jne 0x140059260
jmp 0x14005920e
mov ecx, dword [rdi + 8]
mov qword [rsp + 0x38], r9
movsx edx, dl
mov dword [rsp + 0x30], ecx
mov eax, ecx
mov r9, r8
sub eax, r10d
lea r8, str._s:_Bad_printable_string:_ch_x__pos__u_in__.Rhxs_
mov rcx, rsi
inc eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
mov edx, 0xffffa6ec
call fcn.140014b50
jmp 0x1400595bd
test r10d, r10d
je 0x14005920e
nop dword [rax]
movzx eax, byte [r11]
dec r10d
inc r11
test al, al
je 0x14005932c
cmp al, 0x80
jae 0x140059335
test r10d, r10d
jne 0x140059310
jmp 0x14005920e
test r10d, r10d
je 0x14005920e
mov ecx, dword [rdi + 8]
mov qword [rsp + 0x38], r9
mov r9, r8
mov dword [rsp + 0x30], ecx
mov edx, ecx
movzx eax, al
sub edx, r10d
lea r8, str._s:_Bad_IA5_string:_ch_x__pos__u_in__.Rhxs_
mov rcx, rsi
inc edx
mov dword [rsp + 0x28], edx
mov edx, 0xffffa6e9
mov dword [rsp + 0x20], eax
call fcn.140014b50
jmp 0x1400595bd
mov edx, r10d
mov rcx, r9
call fcn.1400590d0
cmp eax, 1
je 0x1400593b5
cmp eax, 2
jle 0x140059389
cmp eax, 4
jle 0x1400593b5
lea r9, [rsp + 0x60]
mov r8d, r10d
mov rdx, r11
mov ecx, 0x14
mov qword [rsp + 0x20], rsi
call fcn.1400589b0
test eax, eax
js 0x1400595bd
mov rbx, qword [rsp + 0x60]
jmp 0x14005920e
mov edx, r10d
mov rcx, r9
call fcn.140058f10
mov rbx, rax
jmp 0x14005920e
mov eax, 0xffffa6ef
jmp 0x1400595bd
test r10d, r10d
je 0x14005920e
nop dword [rax + rax]
movzx r8d, byte [r11]
dec r10d
inc r11
lea eax, [r8 - 0x20]
cmp al, 0x5e
ja 0x1400593fc
test r10d, r10d
jne 0x1400593e0
jmp 0x14005920e
mov ecx, dword [rdi + 8]
mov qword [rsp + 0x38], r9
movzx eax, r8b
mov dword [rsp + 0x30], ecx
mov edx, ecx
lea r8, str._s:_Bad_visible_string:_ch_x__pos__u_in__.Rhxs_
sub edx, r10d
mov r9, rbp
mov rcx, rsi
inc edx
mov dword [rsp + 0x28], edx
mov edx, 0xffffa6e7
mov dword [rsp + 0x20], eax
call fcn.140014b50
jmp 0x1400595bd
test r10b, 3
jne 0x1400594d7
xor ebx, ebx
test r10d, r10d
je 0x14005920e
add r11, 2
movzx eax, byte [r11 - 1]
movzx edx, byte [r11 - 2]
shl edx, 8
or edx, eax
movzx eax, byte [r11]
shl eax, 8
shl edx, 0x10
or edx, eax
movzx eax, byte [r11 + 1]
or edx, eax
cmp edx, 0xd7ff
jbe 0x140059487
lea eax, [rdx - 0xe000]
cmp eax, 0x101fff
ja 0x1400594a0
mov ecx, edx
call fcn.140057ea0
add r11, 4
add rbx, rax
add r10d, 0xfffffffc
jne 0x140059450
jmp 0x14005920e
mov eax, dword [rdi + 8]
mov qword [rsp + 0x38], r9
lea r8, str._s:_Bad_universal_string:_uc_x__pos__u_in__.Rhxs_
mov ecx, eax
mov dword [rsp + 0x30], eax
mov r9, rbp
sub ecx, r10d
inc ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov edx, 0xffffa6e5
mov rcx, rsi
call fcn.140014b50
jmp 0x1400595bd
mov qword [rsp + 0x30], r9
mov r9, r8
mov dword [rsp + 0x28], r10d
lea r8, str._s:_Bad_universal_string:_size_not_a_multiple_of_4:_cch_x___.Rhxs_
mov edx, 0xffffa6e5
mov rcx, rsi
mov dword [rsp + 0x20], r10d
call fcn.140014b50
jmp 0x1400595bd
test r10b, 1
jne 0x140059590
xor ebx, ebx
test r10d, r10d
je 0x14005920e
nop word [rax + rax]
movzx edx, byte [r11]
movzx eax, byte [r11 + 1]
shl edx, 8
or edx, eax
cmp edx, 0xd7ff
jbe 0x140059543
lea eax, [rdx - 0xe000]
cmp eax, 0x101fff
ja 0x14005955c
mov ecx, edx
call fcn.140057ea0
add r11, 2
add rbx, rax
add r10d, 0xfffffffe
jne 0x140059520
jmp 0x14005920e
mov eax, dword [rdi + 8]
mov qword [rsp + 0x38], r9
lea r8, str._s:_Bad_BMP_string:_uc_x__pos__u_in__.Rhxs_
mov ecx, eax
mov dword [rsp + 0x30], eax
mov r9, rbp
sub ecx, r10d
inc ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov edx, 0xffffa6e4
mov rcx, rsi
call fcn.140014b50
jmp 0x1400595bd
mov qword [rsp + 0x30], r9
mov r9, r8
mov dword [rsp + 0x28], r10d
lea r8, str._s:_Bad_BMP_string:_odd_number_of_bytes_cch_x___.Rhxs_
mov edx, 0xffffa6e4
mov rcx, rsi
mov dword [rsp + 0x20], r10d
call fcn.140014b50
jmp 0x1400595bd
mov eax, 0xffffff1d
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret