Function at 0x410590f0
Capabilities:
Parse credit card information

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov r15, rdx
mov rdi, rcx
xor r14d, r14d
mov qword [r11 - 0x48], r14
mov r13d, r14d
mov dword [r11 - 0x40], r14d
lea rax, [0x412a0240]
mov qword [r11 - 0x50], rax
mov r12d, r14d
mov dword [r11 - 0x30], r14d
mov rbp, r14
mov qword [r11 - 0x38], r14
lea ecx, [r14 + 8]
cmp word [rdi + 0x130], 0
jne 0x4105915d
cmp dword [rdi + 0x134], 1
je 0x410595ea
mov eax, dword [rdi + 0x134]
test eax, eax
jne 0x410592e6
cmp word [rdi + 0x140], 0x7b
jne 0x41059182
cmp dword [rdi + 0x144], 1
je 0x410594ee
cmp word [rdi + 0x140], 0x3f
jne 0x41059199
cmp dword [rdi + 0x144], 1
je 0x410594ee
cmp word [rdi + 0x140], 0x2a
jne 0x410591b0
cmp dword [rdi + 0x144], 1
je 0x410594ee
cmp word [rdi + 0x140], 0x2b
jne 0x410591c7
cmp dword [rdi + 0x144], 1
je 0x410594ee
movzx esi, word [rdi + 0x130]
mov ebx, r12d
cmp r12d, 8
cmovl ebx, ecx
lea eax, [r13 + 2]
cmp eax, ebx
jle 0x410591e2
add ebx, ebx
cmp eax, ebx
jle 0x410591f9
lea ebx, [r13 + 0xd]
mov eax, ebx
cdq
and edx, 7
add eax, edx
and eax, 7
sub eax, edx
sub ebx, eax
cmp ebx, r12d
jle 0x41059220
movsxd rdx, ebx
add rdx, rdx
mov rcx, rbp
call fcn.41219e30
mov rbp, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], rax
mov r12d, ebx
mov dword [rsp + 0x58], ebx
movsxd rax, r13d
mov word [rbp + rax*2], si
add r13d, 1
mov dword [rsp + 0x48], r13d
movsxd rax, r13d
mov word [rbp + rax*2], 0
mov eax, dword [rdi + 0x130]
mov dword [rdi + 0x120], eax
mov eax, dword [rdi + 0x134]
mov dword [rdi + 0x124], eax
mov eax, dword [rdi + 0x138]
mov dword [rdi + 0x128], eax
mov eax, dword [rdi + 0x13c]
mov dword [rdi + 0x12c], eax
mov eax, dword [rdi + 0x140]
mov dword [rdi + 0x130], eax
mov eax, dword [rdi + 0x144]
mov dword [rdi + 0x134], eax
mov eax, dword [rdi + 0x148]
mov dword [rdi + 0x138], eax
mov eax, dword [rdi + 0x14c]
mov dword [rdi + 0x13c], eax
mov eax, dword [rdi + 0x150]
mov dword [rdi + 0x140], eax
mov eax, dword [rdi + 0x154]
mov dword [rdi + 0x144], eax
mov eax, dword [rdi + 0x158]
mov dword [rdi + 0x148], eax
mov eax, dword [rdi + 0x15c]
mov dword [rdi + 0x14c], eax
nop
nop
mov rcx, rdi
call fcn.41054090
test eax, eax
je 0x410592d0
mov ecx, 8
jmp 0x41059146
cmp eax, 1
jne 0x41059146
movzx ebx, word [rdi + 0x130]
cmp bx, 0x29
je 0x410595ea
cmp bx, 0x7c
je 0x410595ea
test r13d, r13d
jg 0x410595f3
cmp bx, 0x28
je 0x410595c7
cmp bx, 0x5b
je 0x410595a4
cmp bx, 0x2e
je 0x410595a4
cmp bx, 0x77
je 0x410595a4
cmp bx, 0x57
je 0x410595a4
cmp bx, 0x73
je 0x410595a4
cmp bx, 0x53
je 0x410595a4
cmp bx, 0x64
je 0x410595a4
cmp bx, 0x44
je 0x410595a4
cmp bx, 0x5e
je 0x41059581
cmp bx, 0x24
je 0x41059581
cmp bx, 0x41
je 0x41059581
cmp bx, 0x5a
je 0x41059581
cmp bx, 0x7a
je 0x41059581
cmp bx, 0x62
je 0x41059581
cmp bx, 0x42
je 0x41059581
cmp bx, 0x47
je 0x41059581
cmp bx, 0x5c
je 0x4105955e
cmp bx, 0x6b
je 0x4105955e
cmp bx, 0x67
je 0x4105955e
mov esi, r12d
cmp r12d, 8
cmovl esi, ecx
lea eax, [r13 + 2]
cmp eax, esi
jle 0x410593ef
add esi, esi
cmp eax, esi
jle 0x41059406
lea esi, [r13 + 0xd]
mov eax, esi
cdq
and edx, 7
add eax, edx
and eax, 7
sub eax, edx
sub esi, eax
cmp esi, r12d
jle 0x4105942d
movsxd rdx, esi
add rdx, rdx
mov rcx, rbp
call fcn.41219e30
mov rbp, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], rax
mov r12d, esi
mov dword [rsp + 0x58], esi
movsxd rax, r13d
mov word [rbp + rax*2], bx
add r13d, 1
mov dword [rsp + 0x48], r13d
movsxd rax, r13d
mov word [rbp + rax*2], 0
mov eax, dword [rdi + 0x130]
mov dword [rdi + 0x120], eax
mov eax, dword [rdi + 0x134]
mov dword [rdi + 0x124], eax
mov eax, dword [rdi + 0x138]
mov dword [rdi + 0x128], eax
mov eax, dword [rdi + 0x13c]
mov dword [rdi + 0x12c], eax
mov eax, dword [rdi + 0x140]
mov dword [rdi + 0x130], eax
mov eax, dword [rdi + 0x144]
mov dword [rdi + 0x134], eax
mov eax, dword [rdi + 0x148]
mov dword [rdi + 0x138], eax
mov eax, dword [rdi + 0x14c]
mov dword [rdi + 0x13c], eax
mov eax, dword [rdi + 0x150]
mov dword [rdi + 0x140], eax
mov eax, dword [rdi + 0x154]
mov dword [rdi + 0x144], eax
mov eax, dword [rdi + 0x158]
mov dword [rdi + 0x148], eax
mov eax, dword [rdi + 0x15c]
mov dword [rdi + 0x14c], eax
mov rcx, rdi
call fcn.41054090
test eax, eax
je 0x410594d8
mov ecx, 8
jmp 0x41059146
test r13d, r13d
jne 0x410595ea
movzx esi, word [rdi + 0x130]
cmp r12d, 8
jge 0x41059508
mov ebx, ecx
jmp 0x41059518
cmp r12d, 2
jge 0x4105953c
lea ebx, [r12 + r12]
cmp ebx, 2
cmovl ebx, ecx
cmp ebx, r12d
jle 0x4105953c
movsxd rdx, ebx
add rdx, rdx
mov rcx, rbp
call fcn.41219e30
mov rbp, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x58], ebx
mov word [rbp], si
mov r13d, 1
mov dword [rsp + 0x48], r13d
mov word [rbp + 2], 0
mov rcx, rdi
call fcn.41056e70
jmp 0x410595f3
mov rdx, r15
mov rcx, rdi
call fcn.410586d0
mov rbx, rax
test rbp, rbp
je 0x41059579
mov rcx, rbp
call fcn.41213d10
mov rax, rbx
jmp 0x4105969e
mov rdx, r15
mov rcx, rdi
call fcn.41058370
mov rbx, rax
test rbp, rbp
je 0x4105959c
mov rcx, rbp
call fcn.41213d10
mov rax, rbx
jmp 0x4105969e
mov rdx, r15
mov rcx, rdi
call fcn.41057920
mov rbx, rax
test rbp, rbp
je 0x410595bf
mov rcx, rbp
call fcn.41213d10
mov rax, rbx
jmp 0x4105969e
mov rdx, r15
mov rcx, rdi
call fcn.4105a7d0
mov rbx, rax
test rbp, rbp
je 0x410595e2
mov rcx, rbp
call fcn.41213d10
mov rax, rbx
jmp 0x4105969e
test r13d, r13d
jle 0x41059681
mov ecx, 0x38
call fcn.41211580
test rax, rax
je 0x4105962f
lea rdx, [0x412a02a8]
test rbp, rbp
cmovne rdx, rbp
mov r9d, dword [r15]
mov ecx, r9d
and ecx, 8
and r9d, 0x10
mov dword [rsp + 0x20], ecx
mov r8d, r13d
mov rcx, rax
call fcn.41055b10
mov r14, rax
mov ebx, dword [rdi + 0x38]
cmp dword [rdi + 0x28], ebx
jl 0x4105965f
add ebx, ebx
cmp ebx, 8
mov eax, 8
cmovl ebx, eax
movsxd rdx, ebx
shl rdx, 3
mov rcx, qword [rdi + 0x30]
call fcn.41219e30
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x20], rax
mov dword [rdi + 0x38], ebx
movsxd rcx, dword [rdi + 0x28]
mov rax, qword [rdi + 0x30]
mov qword [rax + rcx*8], r14
add dword [rdi + 0x28], 1
test rbp, rbp
je 0x4105967c
mov rcx, rbp
call fcn.41213d10
mov rax, r14
jmp 0x4105969e
xor edx, edx
mov rcx, rdi
call fcn.41056f30
mov rbx, rax
test rbp, rbp
je 0x4105969b
mov rcx, rbp
call fcn.41213d10
mov rax, rbx
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret