Function at 0x40533e
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov rbx, rcx
mov rcx, qword [rbx + 0x10]
mov rax, qword [rbx + 0x10]
mov dl, byte [rax]
cmp dl, 0x20
jne 0x40536c
inc rax
mov qword [rbx + 0x10], rax
jmp 0x405358
lea r8d, [rdx - 9]
cmp r8b, 4
ja 0x405380
cmp dl, 0xa
jne 0x405363
inc dword [rbx + 0x18]
jmp 0x405363
cmp dl, 0x2f
je 0x405390
mov rax, qword [rbx + 0x10]
cmp byte [rax], 0x2f
jne 0x4053e8
jmp 0x4053ae
cmp byte [rax + 1], 0x2f
jne 0x405385
mov rax, qword [rbx + 0x10]
mov dl, byte [rax]
test dl, dl
je 0x405385
cmp dl, 0xa
je 0x405385
inc rax
mov qword [rbx + 0x10], rax
jmp 0x405396
cmp byte [rax + 1], 0x2a
jne 0x4053e8
add rax, 2
mov qword [rbx + 0x10], rax
mov rax, qword [rbx + 0x10]
mov dl, byte [rax]
test dl, dl
je 0x4053e8
cmp dl, 0xa
jne 0x4053ce
inc dword [rbx + 0x18]
cmp byte [rax], 0x2a
jne 0x4053e3
cmp byte [rax + 1], 0x2f
jne 0x4053e3
add rax, 2
mov qword [rbx + 0x10], rax
jmp 0x4053e8
inc rax
jmp 0x4053b8
mov r13, qword [rbx + 0x10]
cmp rcx, r13
jb 0x405354
mov qword [rbx + 0x48], r13
xor r12d, r12d
mov dword [rbx + 0x44], 1
mov dl, byte [r13]
test dl, dl
je 0x4057bb
movsx eax, dl
lea ecx, [rax - 0x30]
cmp ecx, 9
ja 0x405469
lea r9, [rbx + 0x10]
cmp dl, 0x30
jne 0x40543e
cmp byte [r13 + 1], 0x78
jne 0x40543e
lea rcx, [r13 + 2]
mov r8d, 0x10
mov rdx, r9
call sym.strtoul
jmp 0x405449
mov rdx, r9
mov rcx, r13
call dbg.__strtod
mov rax, qword [rbx + 0x10]
mov r12d, 0xc8
mov rdx, rax
dec rax
sub rdx, qword [rbx + 0x48]
mov dword [rbx + 0x44], edx
mov qword [rbx + 0x10], rax
jmp 0x4057bb
cmp dl, 0x27
je 0x405473
cmp dl, 0x22
jne 0x4054dc
lea rsi, [r13 + 1]
lea rbp, str.bfnrtv_
mov qword [rbx + 0x10], rsi
mov dil, byte [r13]
mov qword [rbx + 0x48], rsi
mov r12, qword [rbx + 0x10]
mov al, byte [r12]
test al, al
je 0x4054ca
cmp dil, al
je 0x4054ca
cmp al, 0x5c
jne 0x4054c1
movsx edx, byte [r12 + 1]
test dl, dl
je 0x4054c1
cmp dil, dl
je 0x4054bb
mov rcx, rbp
call sym.strchr
test rax, rax
je 0x4054c1
add r12, 2
jmp 0x4054c4
inc r12
mov qword [rbx + 0x10], r12
jmp 0x40548a
sub r12, rsi
mov dword [rbx + 0x44], r12d
mov r12d, 0xc9
jmp 0x4057bb
mov r12d, eax
cmp eax, 0x5f
je 0x40551e
cmp eax, 0x24
je 0x40551e
mov ecx, eax
call sym.json_isalpha
test eax, eax
jne 0x40551e
mov edx, r12d
lea rcx, str._.:______
call sym.strchr
test rax, rax
jne 0x4057bb
jmp 0x4055d7
cmp r8d, 0x24
jne 0x40552e
inc rdx
mov qword [rbx + 0x10], rdx
mov rdx, qword [rbx + 0x10]
movsx r8d, byte [rdx]
cmp r8d, 0x5f
jne 0x405511
jmp 0x405517
mov ecx, r8d
call sym.json_isalpha
test eax, eax
jne 0x405517
sub r8d, 0x30
cmp r8d, 9
jbe 0x405517
mov rax, rdx
dec rdx
lea rdi, [rsp + 0x30]
mov ecx, 0x40
sub rax, r13
mov qword [rbx + 0x10], rdx
lea rsi, str.break
rep movsd dword [rdi], dword [rsi]
mov dword [rbx + 0x44], eax
movsx ecx, byte [r13]
mov ebp, eax
lea rsi, [rsp + 0x30]
call sym.json_isalpha
test eax, eax
je 0x4055cb
xor r15d, r15d
xor r14d, r14d
movsxd r8, ebp
mov rdx, qword [rsi + r15*8]
mov r12d, r15d
test rdx, rdx
je 0x4055c9
or rcx, 0xffffffffffffffff
mov rdi, rdx
mov eax, r14d
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp ebp, ecx
jne 0x4055c4
mov rcx, r13
mov qword [rsp + 0x28], r8
call sym.strncmp
mov r8, qword [rsp + 0x28]
test eax, eax
jne 0x4055c4
lea eax, [r12 + 1]
jmp 0x4055cb
inc r15
jmp 0x405585
xor eax, eax
lea r12d, [rax + 0xca]
jmp 0x4057bb
mov r9d, 0x3d
mov r8d, 0x3c
mov edx, 0x3c
mov rcx, rbx
call sym.longtok3
mov r12d, eax
test eax, eax
jne 0x4057bb
mov r9d, 0x3d
mov r8d, 0x3e
mov edx, 0x3e
mov rcx, rbx
call sym.longtok3
mov r12d, eax
test eax, eax
jne 0x4057bb
mov rdx, qword [rbx + 0x10]
cmp byte [rdx], 0x3e
je 0x40564e
mov r9d, 0x3e
mov r8d, 0x3e
mov edx, 0x3e
mov rcx, rbx
call sym.longtok3
mov r12d, eax
test eax, eax
jne 0x4057bb
jmp 0x40569a
cmp byte [rdx + 1], 0x3e
jne 0x405628
cmp byte [rdx + 2], 0x3e
jne 0x405628
cmp byte [rdx + 3], 0x3d
jne 0x405628
lea rax, [rdx + 3]
add dword [rbx + 0x44], 3
mov qword [rbx + 0x10], rax
movsx eax, byte [rdx]
movsx r12d, byte [rdx + 1]
shl eax, 0x18
shl r12d, 0x10
or eax, r12d
movsx r12d, byte [rdx + 3]
or eax, r12d
movsx r12d, byte [rdx + 2]
shl r12d, 8
or r12d, eax
jne 0x4057bb
jmp 0x405628
mov r9d, 0x3d
mov r8d, 0x3d
mov edx, 0x3d
mov rcx, rbx
call sym.longtok3
mov r12d, eax
test eax, eax
jne 0x4057bb
mov r9d, 0x3d
mov r8d, 0x3d
mov edx, 0x21
mov rcx, rbx
call sym.longtok3
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b535]
lea rdx, [0x0041b538]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b53a]
lea rdx, [0x0041b53d]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b53f]
lea rdx, [0x0041b542]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b544]
lea rdx, [0x0041b547]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b549]
lea rdx, [0x0041b54c]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b54e]
lea rdx, [0x0041b551]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
lea r8, [0x0041b553]
lea rdx, [0x0041b555]
mov rcx, rbx
call sym.longtok
mov r12d, eax
test eax, eax
jne 0x4057bb
mov r12d, 1
mov rax, qword [rbx + 0x10]
cmp byte [rax], 0
je 0x4057cb
inc rax
mov qword [rbx + 0x10], rax
mov r8d, 0x3779
lea rdx, str._home_ubuntu_windows_test_mjs.c
mov ecx, 4
call sym.cs_log_print_prefix
test eax, eax
je 0x4057fd
mov r9, qword [rbx + 0x48]
mov r8d, dword [rbx + 0x44]
mov edx, r12d
lea rcx, str._______d___.s_
call sym.cs_log_printf
mov eax, dword [rbx + 0x40]
mov dword [rbx + 0x38], eax
cmp r12d, 0x213d
je 0x405ae7
jg 0x4058ad
cmp r12d, 0x3f
jg 0x40584f
cmp r12d, 0x20
jle case.0x405842.34
lea eax, [r12 - 0x21]
cmp eax, 0x1e
ja case.0x405842.34
lea rdx, [0x0041b594]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov r12d, 3
jmp case.0x405842.34
cmp r12d, 0x7b
je 0x405afd
jg 0x405884
cmp r12d, 0x5d
je 0x405b08
cmp r12d, 0x5e
je 0x405b13
cmp r12d, 0x5b
jne case.0x405842.34
mov r12d, 0xa
jmp case.0x405842.34
cmp r12d, 0x7d
je 0x405b1e
cmp r12d, 0x7e
je 0x405b26
cmp r12d, 0x7c
jne case.0x405842.34
mov r12d, 0x12
jmp case.0x405842.34
cmp r12d, 0x3d3d
je 0x405b2e
jg 0x405981
cmp r12d, 0x2b3d
je 0x405b36
jg 0x405928
cmp r12d, 0x263d
je 0x405b3e
jg 0x405903
cmp r12d, 0x253d
je 0x405b46
cmp r12d, 0x2626
jne case.0x405842.34
mov r12d, 0x2a
jmp case.0x405842.34
cmp r12d, 0x2a3d
je 0x405b4e
cmp r12d, 0x2b2b
jne case.0x405842.34
mov r12d, 0x1d
jmp case.0x405842.34
cmp r12d, 0x2f3d
je 0x405b56
jg 0x40595c
cmp r12d, 0x2d2d
je 0x405b5e
cmp r12d, 0x2d3d
jne case.0x405842.34
mov r12d, 0x1f
jmp case.0x405842.34
cmp r12d, 0x3c3c
je 0x405b66
cmp r12d, 0x3c3d
jne case.0x405842.34
mov r12d, 0x28
jmp case.0x405842.34
cmp r12d, 0x213d3d
je 0x405b6e
jg 0x4059e9
cmp r12d, 0x5e3d
je 0x405b76
jg 0x4059c4
cmp r12d, 0x3e3d
je 0x405b7e
cmp r12d, 0x3e3e
jne case.0x405842.34
mov r12d, 0x1b
jmp case.0x405842.34
cmp r12d, 0x7c3d
je 0x405b86
cmp r12d, 0x7c7c
jne case.0x405842.34
mov r12d, 0x2b
jmp case.0x405842.34
cmp r12d, 0x3e3e3d
je 0x405b8e
jg 0x405a1d
cmp r12d, 0x3c3c3d
je 0x405b96
cmp r12d, 0x3d3d3d
jne case.0x405842.34
mov r12d, 0x2c
jmp case.0x405842.34
cmp r12d, 0x3e3e3e
je 0x405b9e
cmp r12d, 0x3e3e3e3d
jne case.0x405842.34
mov r12d, 0x31
jmp case.0x405842.34
mov r12d, 4
jmp case.0x405842.34
mov r12d, 5
jmp case.0x405842.34
mov r12d, 8
jmp case.0x405842.34
mov r12d, 9
jmp case.0x405842.34
mov r12d, 0xc
jmp case.0x405842.34
mov r12d, 0xd
jmp case.0x405842.34
mov r12d, 0xe
jmp case.0x405842.34
mov r12d, 0xf
jmp case.0x405842.34
mov r12d, 0x10
jmp case.0x405842.34
mov r12d, 0x11
jmp case.0x405842.34
mov r12d, 0x14
jmp case.0x405842.34
mov r12d, 0x15
jmp case.0x405842.34
mov r12d, 0x16
jmp case.0x405842.34
mov r12d, 0x18
jmp case.0x405842.34
mov r12d, 0x19
jmp case.0x405842.34
mov r12d, 0x27
jmp case.0x405842.34
mov r12d, 2
jmp case.0x405842.34
mov r12d, 6
jmp case.0x405842.34
mov r12d, 0xb
jmp case.0x405842.34
mov r12d, 0x13
jmp case.0x405842.34
mov r12d, 7
jmp case.0x405842.34
mov r12d, 0x17
jmp case.0x405842.34
mov r12d, 0x26
jmp case.0x405842.34
mov r12d, 0x1e
jmp case.0x405842.34
mov r12d, 0x22
jmp case.0x405842.34
mov r12d, 0x24
jmp case.0x405842.34
mov r12d, 0x20
jmp case.0x405842.34
mov r12d, 0x21
jmp case.0x405842.34
mov r12d, 0x1c
jmp case.0x405842.34
mov r12d, 0x1a
jmp case.0x405842.34
mov r12d, 0x2d
jmp case.0x405842.34
mov r12d, 0x25
jmp case.0x405842.34
mov r12d, 0x29
jmp case.0x405842.34
mov r12d, 0x23
jmp case.0x405842.34
mov r12d, 0x2f
jmp case.0x405842.34
mov r12d, 0x2e
jmp case.0x405842.34
mov r12d, 0x30
mov eax, r12d
mov dword [rbx + 0x40], r12d
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret