Function at 0x588120
Capabilities:
Parse credit card information

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x38]
cmp rax, qword [rcx + 0x10]
jbe 0x588d86
sub rsp, 0xb8
xorps xmm0, xmm0
movups xmmword [rsp + 0x80], xmm0
mov rcx, qword [rsp + 0xc0]
xor ebx, ebx
xor ebx, ebx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xd0], 0
mov qword [rsp], rcx
call fcn.00587f20
mov rax, qword [rsp + 0xc0]
mov rbp, qword [rax]
mov qword [rsp], rbp
mov rbp, qword [rax + 0x48]
mov qword [rsp + 8], rbp
call fcn.004ca960
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xc8], rbx
mov byte [rsp + 0x3f], 0
mov rbx, qword [rsp + 0xc0]
mov ebp, dword [rbx + 0x40]
mov dword [rsp + 0x40], ebp
mov dword [rsp], ebp
call fcn.00586f40
mov rdx, qword [rsp + 0xc0]
mov ecx, dword [rsp + 0x40]
movzx ebx, byte [rsp + 8]
cmp bl, 0
je 0x5882e4
mov qword [rsp], rdx
call fcn.00587010
mov rcx, qword [rsp + 0xc0]
mov rbp, qword [rsp + 8]
mov qword [rsp + 0xd8], rbp
mov rdx, qword [rsp + 0x10]
mov qword [rsp + 0xe0], rdx
cmp rdx, 1
jle 0x5882d1
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdx
lea rbx, [0x0061f0e0]
mov qword [rsp], rbx
mov rbx, qword [0x0084e360]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x18], rdx
call fcn.0041c660
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x20]
movzx ebx, byte [rsp + 0x28]
mov rbp, qword [rax]
cmp bl, 0
je 0x5882c8
mov rax, rbp
mov qword [rsp + 0xd0], rax
cmp rax, 0x3d
jg 0x5882b4
cmp rax, 4
jne 0x5882ac
mov byte [rsp + 0x3f], 1
mov rbx, qword [rcx + 0x38]
and rbx, 2
cmp rbx, 0
jne 0x5882a4
movzx ebp, byte [rsp + 0x3f]
mov byte [rcx + 0x60], bpl
add rsp, 0xb8
ret
cmp rax, 0x3d
je 0x588288
jmp 0x58828d
cmp rax, 0x41
je 0x588288
cmp rax, 0x45
je 0x588288
cmp rax, 0x50
je 0x588288
jmp 0x58828d
mov rax, 4
jmp 0x588274
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 4
jmp 0x58828d
cmp ecx, 0x30
jl 0x588335
cmp ecx, 0x39
jg 0x588335
mov byte [rsp + 0x3f], 1
mov qword [rsp], rdx
mov byte [rsp + 8], 0
call fcn.005871d0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xd0], rbx
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
mov qword [rsp], rdx
call fcn.00585fb0
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0xc0]
cmp edx, 0x2d
jg 0x5888a7
cmp edx, 0x26
jg 0x588712
cmp edx, 0x21
jg 0x5885f5
cmp edx, 0xffffffff
jne 0x5883b9
movzx ebx, byte [rcx + 0x60]
cmp bl, 0
je 0x5883a8
xor ebp, ebp
mov byte [rcx + 0x60], bpl
mov qword [rsp + 0xd0], 0x39
lea rbx, [0x006dfbf0]
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], 1
add rsp, 0xb8
ret
mov qword [rsp + 0xd0], 1
jmp 0x58828d
cmp edx, 0xa
jne 0x5883f3
xor ebp, ebp
mov byte [rcx + 0x60], bpl
mov qword [rsp + 0xd0], 0x39
lea rbx, [0x006dfbf0]
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], 1
add rsp, 0xb8
ret
cmp edx, 0x21
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x2b
mov qword [rsp + 0x10], 0x2c
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0xfeff
je 0x588586
mov rbp, qword [rcx]
mov qword [rsp], rbp
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 8], rbx
call fcn.004caa00
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0x48], rbx
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x44], ebx
xor ebx, ebx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rbx
lea rbx, [rsp + 0x80]
cmp rbx, 0
je 0x5885ee
mov qword [rsp + 0xa8], 1
mov qword [rsp + 0xb0], 1
mov qword [rsp + 0xa0], rbx
lea rbx, [0x0061e360]
mov qword [rsp], rbx
lea rbx, [rsp + 0x44]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], 0
call fcn.0041d590
mov rcx, qword [rsp + 0x18]
mov rax, qword [rsp + 0x20]
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 0x70], rcx
mov qword [rbx], rcx
mov qword [rsp + 0x78], rax
cmp byte [0x00869540], 0
jne 0x5885d7
mov qword [rbx + 8], rax
lea rbx, [0x007196c0]
mov qword [rsp], rbx
mov qword [rsp + 8], 0x15
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x18], rbx
mov rbx, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rbx
call fcn.004766b0
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x30]
mov rbx, qword [rsp + 0xc0]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x18], rax
call fcn.00586600
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0xc0]
movzx ebp, byte [rcx + 0x60]
mov byte [rsp + 0x3f], bpl
mov qword [rsp + 0xd0], 0
mov qword [rsp], 0
movsxd rbx, edx
mov qword [rsp + 8], rbx
call fcn.00451a80
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
lea r8, [rbx + 8]
mov qword [rsp], r8
mov qword [rsp + 8], rax
call fcn.00421210
jmp 0x5884fb
mov dword [rbx], eax
jmp 0x588488
cmp edx, 0x22
jne 0x58863b
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 9
mov qword [rsp], rcx
call fcn.00587b80
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 8]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
cmp edx, 0x25
jne 0x588675
mov qword [rsp], rcx
mov qword [rsp + 8], 0x10
mov qword [rsp + 0x10], 0x1b
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x26
jne 0x58842d
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x5e
jne 0x5886cc
mov qword [rsp], rcx
call fcn.00585fb0
mov rbx, qword [rsp + 0xc0]
mov qword [rsp], rbx
mov qword [rsp + 8], 0x16
mov qword [rsp + 0x10], 0x21
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x11
mov qword [rsp + 0x10], 0x1c
mov dword [rsp + 0x18], 0x26
mov qword [rsp + 0x20], 0x22
call fcn.00587ff0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x29
jg 0x588792
cmp edx, 0x27
jne 0x58875d
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 8
mov qword [rsp], rcx
call fcn.005879b0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 8]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
cmp edx, 0x28
jne 0x588773
mov qword [rsp + 0xd0], 0x31
jmp 0x58828d
cmp edx, 0x29
jne 0x58842d
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 0x36
jmp 0x58828d
cmp edx, 0x2b
jg 0x588833
cmp edx, 0x2a
jne 0x5887d5
mov qword [rsp], rcx
mov qword [rsp + 8], 0xe
mov qword [rsp + 0x10], 0x19
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x2b
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0xc
mov qword [rsp + 0x10], 0x17
mov dword [rsp + 0x18], 0x2b
mov qword [rsp + 0x20], 0x25
call fcn.00587ff0
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xd0], rax
cmp rax, 0x25
jne 0x58828d
mov byte [rsp + 0x3f], 1
jmp 0x58828d
cmp edx, 0x2c
jne 0x588849
mov qword [rsp + 0xd0], 0x34
jmp 0x58828d
cmp edx, 0x2d
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0xd
mov qword [rsp + 0x10], 0x18
mov dword [rsp + 0x18], 0x2d
mov qword [rsp + 0x20], 0x26
call fcn.00587ff0
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xd0], rax
cmp rax, 0x26
jne 0x58828d
mov byte [rsp + 0x3f], 1
jmp 0x58828d
cmp edx, 0x3e
jg 0x588c43
cmp edx, 0x3a
jg 0x588af5
cmp edx, 0x2e
jne 0x588971
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x30
jl 0x588919
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x39
jg 0x588919
mov byte [rsp + 0x3f], 1
mov qword [rsp], rcx
mov byte [rsp + 8], 1
call fcn.005871d0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xd0], rbx
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x2e
jne 0x588960
mov qword [rsp], rcx
call fcn.00585fb0
mov rcx, qword [rsp + 0xc0]
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x2e
jne 0x58828d
mov qword [rsp], rcx
call fcn.00585fb0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xd0], 0x30
jmp 0x58828d
mov qword [rsp + 0xd0], 0x35
jmp 0x58828d
cmp edx, 0x2f
jne 0x588ab7
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x2f
je 0x5889bf
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x2a
je 0x5889bf
mov qword [rsp], rcx
mov qword [rsp + 8], 0xf
mov qword [rsp + 0x10], 0x1a
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
movzx ebx, byte [rcx + 0x60]
cmp bl, 0
je 0x588a58
mov qword [rsp], rcx
call fcn.00586dc0
mov rcx, qword [rsp + 0xc0]
movzx ebx, byte [rsp + 8]
cmp bl, 0
je 0x588a58
mov dword [rcx + 0x40], 0x2f
mov rbp, qword [rcx]
mov qword [rsp], rbp
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 8], rbx
call fcn.004caa00
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x10]
mov qword [rax + 0x48], rcx
mov rbp, qword [rax + 0x48]
inc rbp
mov qword [rax + 0x50], rbp
xor ebp, ebp
mov byte [rax + 0x60], bpl
mov qword [rsp + 0xd0], 0x39
lea rbx, [0x006dfbf0]
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], 1
add rsp, 0xb8
ret
mov qword [rsp], rcx
call fcn.00586b50
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rsp + 8]
mov qword [rsp + 0x60], rdx
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x68], rax
mov rbx, qword [rcx + 0x38]
and rbx, 1
cmp rbx, 0
jne 0x588a96
xor ebp, ebp
mov byte [rcx + 0x60], bpl
jmp 0x588179
mov qword [rsp + 0xd0], 2
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
jmp 0x58828d
cmp edx, 0x3a
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x3a
mov qword [rsp + 0x10], 0x2f
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x3c
jg 0x588bb1
cmp edx, 0x3b
jne 0x588b2f
mov qword [rsp + 0xd0], 0x39
lea rbx, [0x006dd7b8]
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], 1
jmp 0x58828d
cmp edx, 0x3c
jne 0x58842d
mov ebx, dword [rcx + 0x40]
cmp ebx, 0x2d
jne 0x588b62
mov qword [rsp], rcx
call fcn.00585fb0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xd0], 0x24
jmp 0x58828d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x28
mov qword [rsp + 0x10], 0x2d
mov dword [rsp + 0x18], 0x3c
mov qword [rsp + 0x20], 0x14
mov qword [rsp + 0x28], 0x1f
call fcn.00588070
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x3d
jne 0x588beb
mov qword [rsp], rcx
mov qword [rsp + 8], 0x2a
mov qword [rsp + 0x10], 0x27
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x3e
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x29
mov qword [rsp + 0x10], 0x2e
mov dword [rsp + 0x18], 0x3e
mov qword [rsp + 0x20], 0x15
mov qword [rsp + 0x28], 0x20
call fcn.00588070
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x5e
jg 0x588cb7
cmp edx, 0x5b
jne 0x588c5e
mov qword [rsp + 0xd0], 0x32
jmp 0x58828d
cmp edx, 0x5d
jne 0x588c79
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 0x37
jmp 0x58828d
cmp edx, 0x5e
jne 0x58842d
mov qword [rsp], rcx
mov qword [rsp + 8], 0x13
mov qword [rsp + 0x10], 0x1e
call fcn.00587f90
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x7b
jg 0x588d1c
cmp edx, 0x60
jne 0x588d02
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 9
mov qword [rsp], rcx
call fcn.00587da0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 8]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0xe0], rbx
jmp 0x58828d
cmp edx, 0x7b
jne 0x58842d
mov qword [rsp + 0xd0], 0x33
jmp 0x58828d
cmp edx, 0x7c
jne 0x588d67
mov qword [rsp], rcx
mov qword [rsp + 8], 0x12
mov qword [rsp + 0x10], 0x1d
mov dword [rsp + 0x18], 0x7c
mov qword [rsp + 0x20], 0x23
call fcn.00587ff0
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0xd0], rbx
jmp 0x58828d
cmp edx, 0x7d
jne 0x58842d
mov byte [rsp + 0x3f], 1
mov qword [rsp + 0xd0], 0x38
jmp 0x58828d
call fcn.00465260
jmp fcn.00588120