Function at 0x140052cc0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x68
mov rbx, qword [rsp + 0xc0]
mov rsi, r9
mov r13, r8
mov r14, rdx
mov rdi, rcx
mov r12, rdx
test rbx, rbx
je 0x140052cff
movsxd rax, dword [rbx]
lea r12, [rdx + rax*2]
cmp word [r12], 0
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0x60], r15
je 0x1400532e1
xor ebp, ebp
movzx edx, word [r12]
lea rcx, str.__t_____:________n.
movzx r15d, word [rsp + 0xc8]
lea rbx, [0x140000000]
call fcn.1400c1808
test rax, rax
je 0x14005307b
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [r12]
cmp ax, r15w
je 0x1400532d9
cmp ax, 0x25
je 0x140053079
cmp ax, 0x2e
jne 0x140052dbd
add r12, 2
mov rbx, r12
movzx eax, word [r12]
cmp eax, 0x7f
ja 0x140052d96
mov ecx, eax
call fcn.1400ca4d0
test eax, eax
jne 0x140052d96
movzx eax, word [r12]
cmp ax, 0x5f
jne 0x140052d9c
add r12, 2
jmp 0x140052d76
mov qword [rsp + 0x48], r12
cmp ax, 0x25
jne 0x140052db1
cmp r15w, ax
jne 0x140053076
lea rbx, [0x140000000]
jmp 0x140053055
cmp ax, 0xa
je 0x14005304a
cmp ax, 0x28
je 0x140052e39
cmp ax, 0x5b
je 0x140052e32
cmp ax, 0x7b
jne 0x140053051
mov ecx, 0x7d
sub r12, r14
sar r12, 1
inc r12d
mov dword [rsp + 0x40], r12d
mov word [rsp + 0x28], cx
lea rax, [rsp + 0x40]
mov rcx, rdi
mov qword [rsp + 0x20], rax
mov r9, rsi
mov r8, r13
mov rdx, r14
call fcn.140052cc0
test eax, eax
je 0x140053233
movsxd rax, dword [rsp + 0x40]
cmp word [r14 + rax*2], 0
lea r12, [r14 + rax*2]
je 0x140053055
jmp 0x140053051
mov ecx, 0x5d
jmp 0x140052de2
mov r8, r12
mov r11d, 0x29
sub r8, r14
mov edx, r11d
sar r8, 1
mov r9, r13
inc r8d
mov rcx, r14
mov dword [rsp + 0x40], r8d
call fcn.1400a4f80
movsxd rcx, eax
cmp word [r14 + rcx*2], 0
lea rbp, [r14 + rcx*2]
movzx ecx, r11w
je 0x140052df0
lea r8, [rbp + 2]
nop dword [rax]
movzx eax, word [r8]
cmp ax, 0x20
je 0x140052e90
cmp ax, 9
jne 0x140052e96
add r8, 2
jmp 0x140052e80
cmp ax, 0x3d
jne 0x140052df0
cmp word [r8 + 2], 0x3e
jne 0x140052df0
movsxd rax, dword [rsi + 0xc]
test eax, eax
je 0x140052ed6
lea rcx, [rax + rax*2]
mov rax, qword [rsi]
cmp byte [rax + rcx*8 - 8], 0
jne 0x140052ed6
mov rdx, qword [rax + rcx*8 - 0x18]
mov eax, dword [rax + rcx*8 - 4]
lea rcx, [rdx + rax*2]
cmp rcx, r12
cmove r12, rdx
lea rsi, [r8 + 4]
mov rdi, rsi
sub rdi, r14
sar rdi, 1
mov eax, edi
nop word [rax + rax]
movsxd r8, eax
movsxd r9, eax
movzx r11d, word [r14 + r8*2]
test r11w, r11w
je case.0x140052f22.0
cmp r11d, 0x7d
ja case.0x140052f22.8
movzx ecx, byte [rbx + r11 + 0x53a08]
mov edx, dword [rbx + rcx*4 + 0x539e4]
add rdx, rbx
jmp rdx
lea rdx, [r9 + 1]
inc eax
lea r8, [r13 + 2]
lea rdx, [r14 + rdx*2]
lea r8, [r8 + r9*2]
movzx ecx, word [rdx]
cmp cx, r11w
jne 0x140052f5f
test r13, r13
je 0x140053034
cmp word [r8], 0
je 0x140053034
inc eax
add r8, 2
add rdx, 2
jmp 0x140052f36
test cx, cx
je 0x140053034
cmp cx, 0x60
jne 0x140052f84
test r13, r13
jne 0x140052f84
cmp word [rdx + 2], r13w
je 0x140052f84
inc eax
add r8, 2
add rdx, 2
inc eax
add r8, 2
add rdx, 2
jmp 0x140052f36
cmp word [r14 + r8*2 + 2], 0x3d
je case.0x140052f22.8
movsxd rcx, eax
mov r9, rbp
movsxd rax, edi
mov r8, r12
mov rdi, qword [rsp + 0xa0]
lea rbx, [r14 + rcx*2]
lea rcx, [rax*2]
add rcx, r13
mov qword [rsp + 0x30], rcx
mov rcx, rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0xb8]
mov rdx, rsi
call fcn.140053db0
test eax, eax
je 0x140053233
mov r12, rbx
lea rbx, [0x140000000]
jmp 0x140053055
inc eax
cmp word [r14 + r9*2 + 2], 0x3f
je case.0x140052f22.8
mov edx, 0x3a
mov r8d, eax
jmp 0x140053029
mov edx, 0x25
jmp 0x140053025
mov edx, 0x29
jmp 0x140053025
mov edx, 0x5d
jmp 0x140053025
mov edx, 0x7d
lea r8d, [rax + 1]
mov r9, r13
mov rcx, r14
call fcn.1400a4f80
movsxd rcx, eax
cmp word [r14 + rcx*2], 0
je case.0x140052f22.0
inc eax
jmp 0x140052ef0
mov word [r12], SafeArrayAllocDescriptor
add r12, 2
movzx edx, word [r12]
test dx, dx
je 0x140053079
lea rcx, str.__t_____:________n.
call fcn.1400c1808
test rax, rax
jne 0x140052d50
jmp 0x140053079
mov r12, rbx
xor ebp, ebp
movzx r9d, word [r12]
test r9w, r9w
je 0x1400532d9
cmp r9w, 0x22
je 0x1400535e3
cmp r9w, 0x27
je 0x1400535e3
sub r9w, 0x30
cmp r9w, 9
ja 0x140053140
lea rdx, [rsp + 0x48]
mov rcx, r12
call fcn.1400a2d90
cmp word [r12], 0x30
mov r15, qword [rsp + 0x48]
jne 0x1400530ed
movzx eax, word [r12 + 2]
mov ecx, 0xffdf
sub ax, 0x58
test cx, ax
jne 0x1400530ed
movzx ecx, word [r12 + 4]
call fcn.1400ca630
test eax, eax
jne 0x140053127
lea rdx, [rsp + 0x50]
mov rcx, r12
call fcn.1400d10f4
mov rdx, qword [rsp + 0x50]
cmp r15, rdx
jae 0x140053127
movzx edx, word [rdx]
lea rcx, str.__t_____:________n.
call fcn.1400c1808
test rax, rax
je 0x140053127
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x48], r15
jmp 0x1400532cb
movzx edx, word [r15]
lea rcx, str.__t_____:________n.
call fcn.1400c1808
test rax, rax
jne 0x1400532cb
mov r15, r12
movzx eax, word [r15]
cmp eax, 0x7f
ja 0x140053161
mov ecx, eax
call fcn.1400ca4d0
test eax, eax
jne 0x140053161
movzx ecx, word [r15]
cmp cx, 0x5f
jne 0x140053167
add r15, 2
jmp 0x140053143
mov r14, r15
mov qword [rsp + 0x48], r15
sub r14, r12
sar r14, 1
cmp cx, 0x25
jne 0x14005323a
cmp word [rsp + 0xc8], cx
je 0x14005323a
mov rdi, qword [rsp + 0xa8]
mov rax, r12
mov rcx, qword [rsp + 0xa0]
sub rax, rdi
sar rax, 1
mov r9, rsi
mov dword [rsp + 0x40], eax
mov r8, r13
lea rax, [rsp + 0x40]
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov bl, 1
call fcn.140053b30
test eax, eax
je 0x140053233
movsxd rax, dword [rsp + 0x40]
lea r15, [rdi + rax*2]
mov qword [rsp + 0x48], r15
mov eax, dword [rsi + 8]
cmp dword [rsi + 0xc], eax
jne 0x1400534a8
sub eax, 0xffffff80
movsxd rcx, eax
lea rdx, [rcx + rcx*2]
mov rcx, qword [rsi]
shl rdx, 3
call fcn.1400c592c
test rax, rax
jne 0x1400534a1
mov rax, qword [0x14012d4f8]
lea rdx, str.Out_of_memory.
mov qword [rsp + 0x28], rax
lea rcx, [0x14012d680]
xor r9d, r9d
mov qword [rsp + 0x20], rbp
xor r8d, r8d
call fcn.14000f470
test eax, eax
jne 0x1400534ab
xor eax, eax
jmp 0x1400532f4
xor bl, bl
test r14, r14
je 0x140053802
mov rax, r15
cmp cx, 0x20
je 0x140053257
movzx ecx, word [rax]
cmp cx, 9
jne 0x140053261
movzx ecx, word [rax + 2]
add rax, 2
jmp 0x140053248
cmp cx, 0x3a
jne 0x14005330f
cmp word [rax + 2], 0x3d
je 0x1400531d6
mov rdi, qword [rsp + 0xa8]
lea rax, [r12 - 2]
cmp rax, rdi
jbe 0x1400532a8
nop dword [rax + rax]
movzx ecx, word [rax]
cmp cx, 0x20
je 0x14005329f
cmp cx, 9
jne 0x1400532a8
sub rax, 2
cmp rax, rdi
ja 0x140053290
movzx ecx, word [rax]
cmp cx, 0x2c
je 0x1400532bb
cmp cx, 0x7b
jne 0x1400531d6
mov r14, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa0]
cmp word [r15], 0
mov r12, r15
jne 0x140052d1a
mov rbx, qword [rsp + 0xc0]
test rbx, rbx
je 0x1400532ef
sub r12, r14
sar r12, 1
mov dword [rbx], r12d
mov eax, 1
mov r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0xb0]
add rsp, 0x68
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
cmp cx, 0x3d
jne 0x1400531d6
cmp word [rax + 2], 0x3e
jne 0x1400531d6
mov r14, qword [rsp + 0xa8]
lea rsi, [rax + 4]
mov rdi, rsi
lea rbx, [0x140000000]
sub rdi, r14
sar rdi, 1
mov r8d, edi
nop dword [rax]
nop word [rax + rax]
movsxd rdx, r8d
movsxd r9, r8d
movzx r11d, word [r14 + rdx*2]
test r11w, r11w
je case.0x140053382.0
cmp r11d, 0x7d
ja case.0x140053382.8
movzx eax, byte [rbx + r11 + 0x53aac]
mov ecx, dword [rbx + rax*4 + 0x53a88]
add rcx, rbx
jmp rcx
lea rcx, [r14 + 2]
inc r8d
lea rdx, [r13 + 2]
lea rcx, [rcx + r9*2]
lea rdx, [rdx + r9*2]
movzx eax, word [rcx]
cmp ax, r11w
jne 0x1400533b9
test r13, r13
je 0x1400533ab
cmp word [rdx], 0
jne 0x1400533db
movsxd rax, r8d
cmp word [r14 + rax*2], 0
jmp 0x140053493
test ax, ax
je 0x1400533ab
cmp ax, 0x60
jne 0x1400533db
test r13, r13
jne 0x1400533db
cmp word [rcx + 2], r13w
je 0x1400533db
inc r8d
add rdx, 2
add rcx, 2
inc r8d
add rdx, 2
add rcx, 2
jmp 0x140053397
cmp word [r14 + rdx*2 + 2], 0x3d
je case.0x140053382.8
movsxd rax, r8d
mov r9, r15
mov r8, r12
lea rbx, [r14 + rax*2]
movsxd rax, edi
mov rdi, qword [rsp + 0xa0]
lea rcx, [rax*2]
add rcx, r13
mov qword [rsp + 0x30], rcx
mov rcx, rdi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0xb8]
mov rdx, rsi
call fcn.140053db0
test eax, eax
je 0x140053233
mov r15, rbx
mov qword [rsp + 0x48], rbx
jmp 0x1400532cb
inc r8d
cmp word [r14 + r9*2 + 2], 0x3f
je case.0x140053382.8
mov edx, 0x3a
jmp 0x14005347f
mov edx, 0x25
jmp 0x14005347c
mov edx, 0x29
jmp 0x14005347c
mov edx, 0x5d
jmp 0x14005347c
mov edx, 0x7d
inc r8d
mov r9, r13
mov rcx, r14
call fcn.1400a4f80
movsxd r8, eax
cmp word [r14 + r8*2], 0
je case.0x140053382.0
inc r8d
jmp 0x140053350
sub dword [rsi + 8], 0xffffff80
mov qword [rsi], rax
inc dword [rsi + 0xc]
movsxd rax, dword [rsi + 0xc]
lea rcx, [rax + rax*2]
mov rax, qword [rsi]
lea rdi, [rax + rcx*8]
test bl, bl
je 0x1400534e7
mov r14, qword [rsp + 0xa8]
mov qword [rdi - 0x18], r15
mov dword [rdi - 4], ebp
cmp r12, r14
jbe 0x1400534dd
cmp word [r12 - 2], 0x2e
mov al, 6
je 0x1400534df
mov al, 1
mov byte [rdi - 8], al
jmp 0x1400532c3
cmp r14, 9
jae 0x140053533
mov esi, ebp
lea rbx, [0x140129cf0]
nop word [rax + rax]
mov rcx, qword [rbx]
mov r8, r14
mov rdx, r12
call fcn.1400c5980
test eax, eax
jne 0x14005351d
mov rax, qword [rbx]
cmp word [rax + r14*2], 0
je 0x140053593
inc esi
inc rbp
add rbx, 0x10
cmp esi, 0xa
jb 0x140053500
mov rsi, qword [rsp + 0xb8]
cmp r14, 4
jne 0x14005354f
mov r8, r14
lea rdx, str.True
mov rcx, r12
call fcn.1400c5980
test eax, eax
je 0x14005356b
cmp r14, 5
jne 0x1400535cc
mov r8, r14
lea rdx, str.False
mov rcx, r12
call fcn.1400c5980
test eax, eax
jne 0x1400535cc
mov qword [rdi - 0x18], r12
mov dword [rdi - 4], r14d
mov byte [rdi - 8], 5
movzx ecx, word [r12]
call fcn.1400d1a68
xor ebp, ebp
mov ecx, ebp
cmp eax, 0x54
sete cl
mov dword [rdi - 0x10], ecx
jmp 0x1400532bb
add rbp, rbp
lea rax, [0x140129cf0]
mov eax, dword [rax + rbp*8 + 8]
test eax, eax
je 0x14005352b
cmp eax, 0x47
jge 0x140053703
mov rsi, qword [rsp + 0xb8]
xor ebp, ebp
mov qword [rdi - 0x18], r12
mov dword [rdi - 4], r14d
mov byte [rdi - 8], 4
mov dword [rdi - 0x10], eax
jmp 0x1400532bb
xor ebp, ebp
mov qword [rdi - 0x18], r12
mov qword [rdi - 0x10], rbp
mov dword [rdi - 4], r14d
mov byte [rdi - 8], 0
jmp 0x1400532bb
mov rcx, r12
sub rcx, r14
sar rcx, 1
inc ecx
movsxd rax, ecx
lea r8, [rax*2]
add r8, r13
lea rdx, [r14 + rax*2]
movzx eax, word [rdx]
cmp ax, r9w
jne 0x140053687
test r13, r13
je 0x140053619
cmp word [r8], 0
jne 0x1400536a8
movsxd rax, ecx
cmp word [r14 + rax*2], 0
lea r15, [r14 + rax*2]
je 0x1400538f1
mov eax, dword [rsi + 8]
cmp dword [rsi + 0xc], eax
jne 0x1400536be
sub eax, 0xffffff80
movsxd rcx, eax
lea rdx, [rcx + rcx*2]
mov rcx, qword [rsi]
shl rdx, 3
call fcn.1400c592c
test rax, rax
jne 0x1400536b7
mov rax, qword [0x14012d4f8]
lea rdx, str.Out_of_memory.
mov qword [rsp + 0x28], rax
lea rcx, [0x14012d680]
xor r9d, r9d
mov qword [rsp + 0x20], rbp
xor r8d, r8d
call fcn.14000f470
test eax, eax
je 0x140053233
jmp 0x1400536c1
test ax, ax
je 0x140053619
cmp ax, 0x60
jne 0x1400536a8
test r13, r13
jne 0x1400536a8
cmp word [rdx + 2], r13w
je 0x1400536a8
inc ecx
add r8, 2
add rdx, 2
inc ecx
add r8, 2
add rdx, 2
jmp 0x140053600
sub dword [rsi + 8], 0xffffff80
mov qword [rsi], rax
inc dword [rsi + 0xc]
movsxd rax, dword [rsi + 0xc]
lea rcx, [rax + rax*2]
mov rax, qword [rsi]
mov word [rax + rcx*8 - 8], 0x103
mov byte [rax + rcx*8 - 0x10], 1
lea rdx, [rax + rcx*8]
lea rax, [r12 + 2]
mov qword [rdx - 0x18], rax
mov rax, r15
sub rax, r12
sub rax, 2
sar rax, 1
add r15, 2
mov dword [rdx - 4], eax
mov qword [rsp + 0x48], r15
jmp 0x1400532cb
mov r10, qword [rsp + 0xa0]
movzx eax, byte [0x14012de1c]
mov rcx, qword [r10 + 0x6b8]
test rcx, rcx
je 0x140053791
test al, al
je 0x140053791
mov rax, qword [0x1401251d8]
cmp dword [rax + 0x60], 0
jne 0x14005376a
cmp dword [r10 + 0x718], 0
jne 0x14005376a
cmp byte [0x140127ada], 0
jne 0x14005376a
xor ebx, ebx
lea rdx, str.Unexpected_reserved_word.
mov qword [rsp + 0x28], rbx
mov r9, r12
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, r10
call fcn.140010340
mov ebx, eax
jmp 0x1400532f4
xor ebx, ebx
lea rdx, str.Unexpected_reserved_word.
mov r9, rcx
mov qword [rsp + 0x28], rbx
mov r8, r12
mov dword [rsp + 0x20], ebx
mov rcx, r10
call fcn.14000ef80
mov ebx, eax
jmp 0x1400532f4
cmp byte [0x14012de1f], 0
je 0x1400537da
test al, al
jne 0x1400537da
test rcx, rcx
je 0x1400537ad
movzx r9d, word [rcx + 2]
mov eax, dword [rcx + 4]
jmp 0x1400537bb
mov r9d, dword [r10 + 0x2d8]
mov eax, dword [r10 + 0x2dc]
mov r8, r12
mov dword [rsp + 0x20], eax
lea rdx, str.Unexpected_reserved_word.
mov rcx, r10
call fcn.14000f320
xor ebx, ebx
mov eax, ebx
jmp 0x1400532f4
xor ebx, ebx
lea rdx, str.Unexpected_reserved_word.
mov qword [rsp + 0x28], rbx
mov r9, r12
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov rcx, r10
call fcn.140010340
mov eax, ebx
jmp 0x1400532f4
mov rcx, qword [rdi + 0x6b8]
movzx eax, byte [0x14012de1c]
test rcx, rcx
je 0x140053882
test al, al
je 0x140053882
mov rax, qword [0x1401251d8]
cmp dword [rax + 0x60], 0
jne 0x14005385d
cmp dword [rdi + 0x718], 0
jne 0x14005385d
cmp byte [0x140127ada], bl
jne 0x14005385d
mov qword [rsp + 0x28], rbp
lea rdx, str.Illegal_character_in_expression.
mov qword [rsp + 0x20], rcx
mov r9, r15
mov rcx, rdi
xor r8d, r8d
call fcn.140010340
mov ebx, eax
jmp 0x1400532f4
mov r9, rcx
mov qword [rsp + 0x28], rbp
mov rcx, rdi
mov dword [rsp + 0x20], ebp
mov r8, r15
lea rdx, str.Illegal_character_in_expression.
call fcn.14000ef80
mov ebx, eax
jmp 0x1400532f4
cmp byte [0x14012de1f], bl
je 0x1400538c9
test al, al
jne 0x1400538c9
test rcx, rcx
je 0x14005389d
movzx r9d, word [rcx + 2]
mov eax, dword [rcx + 4]
jmp 0x1400538aa
mov r9d, dword [rdi + 0x2d8]
mov eax, dword [rdi + 0x2dc]
mov r8, r15
mov dword [rsp + 0x20], eax
lea rdx, str.Illegal_character_in_expression.
mov rcx, rdi
call fcn.14000f320
xor ebx, ebx
mov eax, ebx
jmp 0x1400532f4
mov qword [rsp + 0x28], rbp
lea rdx, str.Illegal_character_in_expression.
mov r9, r15
mov qword [rsp + 0x20], rbp
xor r8d, r8d
mov rcx, rdi
call fcn.140010340
xor ebx, ebx
mov eax, ebx
jmp 0x1400532f4
mov rcx, qword [rdi + 0x6b8]
movzx eax, byte [0x14012de1c]
test rcx, rcx
je 0x140053972
test al, al
je 0x140053972
mov rax, qword [0x1401251d8]
cmp dword [rax + 0x60], 0
jne 0x14005394d
cmp dword [rdi + 0x718], 0
jne 0x14005394d
cmp byte [0x140127ada], 0
jne 0x14005394d
mov qword [rsp + 0x28], rbp
lea rdx, str.Missing_close_quote
mov qword [rsp + 0x20], rcx
mov r9, r12
mov rcx, rdi
xor r8d, r8d
call fcn.140010340
mov ebx, eax
jmp 0x1400532f4
mov r9, rcx
mov qword [rsp + 0x28], rbp
mov rcx, rdi
mov dword [rsp + 0x20], ebp
mov r8, r12
lea rdx, str.Missing_close_quote
call fcn.14000ef80
mov ebx, eax
jmp 0x1400532f4
cmp byte [0x14012de1f], 0
je 0x1400539ba
test al, al
jne 0x1400539ba
test rcx, rcx
je 0x14005398e
movzx r9d, word [rcx + 2]
mov eax, dword [rcx + 4]
jmp 0x14005399b
mov r9d, dword [rdi + 0x2d8]
mov eax, dword [rdi + 0x2dc]
mov r8, r12
mov dword [rsp + 0x20], eax
lea rdx, str.Missing_close_quote
mov rcx, rdi
call fcn.14000f320
xor ebx, ebx
mov eax, ebx
jmp 0x1400532f4
mov qword [rsp + 0x28], rbp
lea rdx, str.Missing_close_quote
mov r9, r12
mov qword [rsp + 0x20], rbp
xor r8d, r8d
mov rcx, rdi
call fcn.140010340
xor ebx, ebx
mov eax, ebx
jmp 0x1400532f4