Function at 0x14036a810
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
cmp qword [rdx + 8], 0
je 0x14036b00e
mov rsi, rdx
mov rdi, rcx
lea rbx, [rcx + 0x10]
movzx eax, word [rcx + 0x10]
cmp eax, 0x5a4d
je 0x14036a890
mov rax, qword [0x140591c70]
mov qword [rbp - 8], 0
mov rax, qword [rax + 0x360]
mov rcx, qword [rdi]
mov rdx, qword [rdi + 8]
lea r8, [rbp - 8]
mov qword [rsp + 0x20], r8
mov r9d, 0x400
mov r8, rbx
call qword [case.0x140114b5b.0]
test eax, eax
je 0x14036b00e
movsxd rax, dword [rdi + 0x4c]
cmp rax, 0x3ff
ja 0x14036b00e
add rax, rbx
lea r14, [rax + 0x18]
mov rcx, r14
sub rcx, rbx
cmp rcx, 0x3ff
ja 0x14036b00e
movzx ecx, word [r14]
cmp ecx, 0x10b
je 0x14036a8e7
cmp ecx, 0x20b
jne 0x14036b00e
add rax, 0x90
mov r14, rax
cmp dword [r14 + 4], 0
jne 0x14036a8f6
jmp 0x14036b00e
add r14, 0x68
cmp dword [r14 + 4], 0
je 0x14036b00e
mov rbx, qword [0x140591c70]
mov qword [rbp - 0x20], 0
lea rax, [rdi + 0x410]
mov edx, dword [r14 + 4]
mov r9, qword [rdi + 0x410]
mov rcx, qword [rdi + 0x418]
mov r8, rcx
sub r8, r9
cmp r8, rdx
mov qword [rbp + 0x20], rbx
jbe 0x14036a939
add r9, rdx
mov qword [rdi + 0x418], r9
jmp 0x14036a98a
jae 0x14036a98a
mov r10, qword [rdi + 0x420]
sub r10, r9
cmp r10, rdx
jae 0x14036a958
lea r8, [rbp - 8]
mov rcx, rax
call fcn.1401c42e0
jmp 0x14036a98a
mov rax, r8
neg rax
xor rax, rdx
not rdx
dec r8
and r8, rdx
or r8, rax
not r8
lea r8, [rax + r8*2]
lea rbx, [rcx + r8]
xor edx, edx
call fcn.14042db60
mov qword [rdi + 0x418], rbx
mov rbx, qword [rbp + 0x20]
mov rax, qword [rbx + 0x360]
mov r9, qword [rdi + 0x418]
mov r8, qword [rdi + 0x410]
sub r9, r8
mov edx, dword [r14]
add rdx, qword [rdi + 8]
mov rcx, qword [rdi]
lea r10, [rbp - 0x20]
mov qword [rsp + 0x20], r10
call qword [case.0x140114b5b.0]
test eax, eax
je 0x14036b00e
mov r12, qword [rdi + 0x410]
mov rcx, qword [rdi + 0x418]
mov qword [rbp - 0x28], rcx
sub rcx, r12
movsxd rax, dword [0x14046e9f0]
mov edx, dword [0x14046e9e8]
mov dword [rbp + 0x2c], edx
test rcx, rcx
jle 0x14036b00e
lea rcx, [0x14046e9f0]
add rcx, rax
mov qword [rbp - 0x38], rcx
lea r13, [rbp - 0x50]
mov r14b, 1
lea r15, [fcn.14036a810]
cmp dword [r12 + 0xc], 0
je 0x14036b00e
mov rax, qword [rbx + 0x360]
mov edx, dword [r12 + 0xc]
add rdx, qword [rdi + 8]
mov rcx, qword [rdi]
lea r8, [rbp - 0x20]
mov qword [rsp + 0x20], r8
mov r9d, 0x10
mov r8, r13
call qword [case.0x140114b5b.0]
test eax, eax
je 0x14036b00e
mov qword [rbp - 0x30], r12
mov byte [rbp - 0x41], 0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov rcx, r13
mov edx, 0xcd1c45b2
mov r8d, 0x88f20e21
mov r9d, 0x99c88485
call fcn.1400ac7f0
mov r12, rax
cmp rax, 0xf
jbe 0x14036aa9b
lea rcx, [rbp]
mov rdx, r12
mov r9, r13
call fcn.140088c30
jmp 0x14036aab4
mov qword [rbp + 0x10], r12
lea rcx, [rbp]
mov rdx, r13
mov r8, r12
call fcn.14042d4b0
mov byte [rbp + r12], 0
lea rax, [0x140449f08]
mov qword [rbp - 8], rax
mov edx, dword [rbp + 0x10]
test edx, edx
je 0x14036aada
cmp qword [rbp + 0x18], 0x10
lea rcx, [rbp]
jb 0x14036aad5
mov rcx, qword [rbp]
call fcn.1400f2c60
mov rcx, rsi
lea rdx, [rbp - 8]
call fcn.1400f2ce0
mov qword [rbp - 0x18], rax
mov rax, qword [rsi]
mov qword [rbp - 0x10], rax
mov eax, dword [0x1405920f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14036ae30
nop word cs:[rax + rax]
mov eax, dword [0x140572214]
lea r12d, [rax + 1]
mov dword [0x140572214], r12d
mov ecx, dword [0x1405920fc]
cmp ecx, 0x42
jg 0x14036ae30
mov ecx, dword [0x1405920fc]
nop word cs:[rax + rax]
mov ecx, dword [0x1405920f8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x14036ab40
mov ecx, eax
not ecx
xor eax, r12d
not r12d
and r12d, ecx
or r12d, eax
not r12d
test r12d, r12d
je 0x14036ab91
xor r13d, r13d
jmp 0x14036ad20
mov eax, dword [0x1405920f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14036ab80
mov eax, dword [0x1405920fc]
cmp eax, 0x3f
jge 0x14036ab80
xor eax, eax
mov r13d, 0
cmp dword [rbp + 0x2c], 0
jle 0x14036ad20
xor r13d, r13d
nop word cs:[rax + rax]
mov ecx, dword [0x1405920fc]
cmp ecx, 0x3e
jg 0x14036abc0
movsxd rdx, eax
mov ecx, dword [0x1405920fc]
nop word cs:[rax + rax]
mov ecx, dword [0x1405920f8]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x14036abe0
add rdx, qword [rbp - 0x38]
xor ecx, ecx
test cl, cl
jne 0x14036ac24
movzx ecx, word [rdx]
mov r8d, dword [0x1405920fc]
cmp r8d, 0x1c
jg 0x14036ac24
mov edx, dword [0x1405920f8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x14036ac40
jmp 0x14036ac29
movzx ecx, word [rdx]
jmp 0x14036abfe
mov edx, dword [0x1405920f8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x14036ac4d
nop dword [rax]
mov edx, dword [0x1405920fc]
cmp edx, 0x1d
jge 0x14036ac40
jmp 0x14036ac29
mov edx, r13d
not edx
mov r8d, ecx
not r8d
lea r9d, [r15 + r15]
add r9d, 0x2d40
mov r10d, r9d
not r10d
and r9d, r10d
lea r11d, [r15 + r15]
add r11d, 0x2d41
and r10d, 0xfffffffe
xor r10d, r11d
or r10d, r9d
cmp r10d, 0xffffffff
jne 0x14036aca0
mov r9d, dword [0x1405920f8]
lea r10d, [r9 + 1]
imul r10d, r9d
test r10b, 1
je 0x14036acaf
nop dword [rax]
mov r9d, dword [0x1405920fc]
cmp r9d, 0x20
jge 0x14036aca0
jmp 0x14036ac87
and edx, ecx
xor r8d, r13d
not r13d
and r13d, ecx
or r13d, r8d
not r13d
mov ecx, edx
and ecx, r13d
xor r13d, edx
xor r13d, ecx
mov ecx, dword [0x1405920fc]
nop word cs:[rax + rax]
lea ecx, [r15 + r15]
add ecx, 0x1ac0
mov edx, ecx
not edx
and ecx, edx
lea r8d, [r15 + r15]
add r8d, 0x1ac1
and edx, 0xfffffffe
xor edx, r8d
or edx, ecx
cmp edx, 0xffffffff
jne 0x14036ace0
add eax, 2
cmp eax, dword [rbp + 0x2c]
jl 0x14036abc0
nop word cs:[rax + rax]
mov eax, dword [0x1405920f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14036ad20
test r14b, r14b
je 0x14036ad20
mov rax, qword [rbp - 0x10]
cmp qword [rbp - 0x18], rax
je 0x14036ad8d
cmp qword [0x140591c98], 0
jne 0x14036ad80
mov ecx, 0x30
call fcn.1404058bc
mov qword [rax + 0x28], 0xf
lea rcx, [0x140449f08]
mov qword [rax + 8], rcx
mov dword [rax], 0
mov qword [rax + 0x20], 0
mov byte [rax + 0x10], 0
mov qword [0x140591c98], rax
mov rax, qword [0x140591c98]
mov dword [rax], 0x11
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x14036affc
mov rcx, qword [rbp]
movabs rdx, 0x433d44161609cf2c
add rdx, rax
mov r8, rdx
not r8
mov r9d, r8d
and r9d, 1
mov r10, rdx
and r10, 0xfffffffffffffffe
or r10, r9
xor rdx, 1
movabs r9, 0x7ffffffffffffffe
and r8, r9
or r8, rdx
not r8
lea rdx, [r10 + r8*2]
movabs r8, 0xbcc2bbe9e9f630d4
add rdx, r8
movzx r8d, byte [0x14058f004]
xor r10d, r10d
test r12d, r12d
setne r10b
movzx r9d, word [0x14046e9f4]
nop word cs:[rax + rax]
mov r11d, dword [0x1405920fc]
cmp r11d, 0x44
jle 0x14036ae52
test r14b, r14b
jmp 0x14036ae10
mov edx, dword [0x140572214]
lea ecx, [rdx + rdx]
mov eax, edx
shl eax, cl
mov ecx, eax
shl edx, cl
mov ecx, eax
sub ecx, edx
add ecx, eax
mov dword [0x140572214], ecx
jmp 0x14036ab10
movzx r10d, r10w
dec r10d
sub r9d, r13d
mov r11d, dword [0x1405920fc]
cmp r11d, 0x4b
jg 0x14036af70
jmp 0x14036aea0
mov r12, qword [rbp - 0x30]
add r12, 0x14
cmp byte [0x14058f6fc], 0
lea r13, [rbp - 0x50]
jne 0x14036aa0d
cmp r12, qword [rbp - 0x28]
jb 0x14036aa0d
jmp 0x14036b00e
movzx r11d, byte [0x14058f004]
mov r12d, dword [0x1405920fc]
cmp r12d, 0x48
jge 0x14036af70
movsx r12d, r10w
xor r9d, r12d
not r9d
test r9w, r12w
setne r12b
and r12b, r11b
mov r13d, dword [0x1405920f8]
lea ebx, [r13 - 1]
imul ebx, r13d
test bl, 1
je 0x14036af04
nop word cs:[rax + rax]
mov ebx, dword [0x1405920f8]
lea r13d, [rbx - 1]
imul r13d, ebx
test r13b, 1
jne 0x14036aef0
test r9w, r10w
sete r9b
setne r10b
xor r9b, r10b
and r9b, r11b
xor r9b, r10b
or r12b, r9b
mov byte [0x14058f004], r12b
cmp rdx, 0x1000
setb r9b
setae r10b
xor r9b, r10b
and r9b, r8b
and r8b, r10b
xor r9b, r10b
mov r10d, r8d
xor r10b, 1
mov r11d, r9d
xor r11b, r10b
test r11b, r9b
jne 0x14036af89
and r10b, r9b
jne 0x14036af89
xor r9b, 1
and r8b, r9b
jne 0x14036af89
mov rbx, qword [rbp + 0x20]
jmp 0x14036afe3
mov r11d, dword [0x1405920f8]
lea ebx, [r11 - 1]
imul ebx, r11d
test bl, 1
jne 0x14036af70
jmp 0x14036aea0
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and rcx, r9
lea rcx, [rdx + rcx*2]
sub rcx, r8
cmp rcx, 0x20
mov rbx, qword [rbp + 0x20]
jae 0x14036b024
movabs rcx, 0x6d3f86f1fc5a43e2
add rax, rcx
mov rcx, rax
movabs rdx, 0x92c0790e03a5bc46
xor rcx, rdx
movabs rdx, 0x12c0790e03a5bc46
and rax, rdx
lea rdx, [rcx + rax*2]
mov rcx, r8
mov dword [rsp + 0x20], 0xb0aa5535
mov r8d, 0x84dd8f50
mov r9d, 0xfa544556
call fcn.1400ab270
mov rax, qword [rbp - 0x10]
cmp qword [rbp - 0x18], rax
je 0x14036ae6f
mov al, 1
jmp 0x14036b010
xor eax, eax
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.1403e571c
int3