Function at 0x1800046b0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp dword [rcx + 0x28], 0
mov rbx, rcx
jne 0x180004a05
xor ebp, ebp
lea rsi, [0x180000000]
nop word [rax + rax]
mov eax, dword [rbx + 0x34]
mov dword [rbx + 0x30], eax
cmp eax, 0x6e
jne 0x1800046f8
test dword [rbx + 0x2c], 0x400
jne 0x1800049ce
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x18000471f
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 8], rax
jb 0x18000471f
mov rax, qword [rbx + 0x20]
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rcx
mov qword [rbx + 0x20], rbp
mov qword [rbx + 0x18], rbp
test byte [rbx + 0x2c], 0x20
je 0x180004741
mov eax, dword [rbx + 0x3c]
test eax, eax
jle 0x180004741
cmp eax, 2
jle 0x180004739
add eax, 0xfffffffc
cmp eax, 1
ja 0x180004741
mov rcx, rbx
call fcn.180005d90
mov r8, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
cmp r8, rdx
jb case.default.0x180004764
mov eax, dword [rbx + 0x3c]
dec eax
cmp eax, 8
ja case.default.0x180004764
cdqe
mov ecx, dword [rsi + rax*4 + 0x50a8]
add rcx, rsi
jmp rcx
movzx edi, word [r8]
add r8, 2
mov r9d, dword [rbx + 0x3c]
mov qword [rbx + 8], r8
lea eax, [r9 - 2]
cmp eax, 7
ja case.default.0x18000478f
cdqe
mov ecx, dword [rsi + rax*4 + 0x50cc]
add rcx, rsi
jmp rcx
movzx ecx, di
sub ecx, 0x2d
je 0x180004afb
sub ecx, 0x2e
je 0x180004a65
sub ecx, 1
jne 0x180004a43
mov rax, qword [rbx]
or dword [rax + 0x10], 0x40
test byte [rbx + 0x2c], 2
je case.0x180004862.48
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 8], rax
jae 0x180004a32
mov rcx, rbx
call fcn.1800051d0
mov eax, dword [rbx + 0x34]
cmp eax, 0x43
jne 0x180004a2d
movzx eax, word [rbx + 0x38]
cmp ax, 0x64
je 0x18000482c
cmp ax, 0x73
je 0x180004819
cmp ax, 0x77
jne 0x180004a32
lea rdx, [0x180149956]
lea r8, [0x180149930]
jmp 0x1800049a5
lea rdx, [0x180149982]
lea r8, str._:space:_
jmp 0x1800049a5
lea rdx, [0x18014a05a]
lea r8, [0x18014a048]
jmp 0x1800049a5
movzx eax, di
add eax, 0xffffffdc
cmp eax, 0x58
ja case.0x180004862.48
cdqe
movzx eax, byte [rsi + rax + 0x5120]
mov ecx, dword [rsi + rax*4 + 0x50ec]
add rcx, rsi
jmp rcx
mov eax, dword [rbx + 0x2c]
test al, 2
je 0x180004d65
cmp r8, rdx
jae 0x180004d65
cmp word [r8], 0x3f
jne 0x180004d65
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
add qword [rbx + 8], 2
mov rax, qword [rbx + 8]
movzx ecx, word [rax]
add rax, 2
mov qword [rbx + 8], rax
cmp cx, 0x21
je 0x180004d49
cmp cx, 0x23
jne 0x180004cf6
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
jae 0x1800049c3
mov rcx, rax
cmp word [rcx], 0x29
je 0x1800048db
lea rax, [rcx + 2]
mov qword [rbx + 8], rax
mov rcx, rax
cmp rax, rdx
jb 0x1800048c5
cmp rax, rdx
jae 0x1800049c3
add rax, 2
mov qword [rbx + 8], rax
jmp 0x1800049c3
cmp r8, rdx
jae 0x180004a32
test byte [rbx + 0x2c], 2
je 0x180004da5
mov rcx, rbx
call fcn.1800051d0
mov eax, dword [rbx + 0x28]
test eax, eax
jne 0x180004d96
cmp dword [rbx + 0x34], 0x43
jne 0x1800049d9
movzx eax, word [rbx + 0x38]
add eax, 0xffffffbc
cmp eax, 0x33
ja case.0x180004945.74
cdqe
movzx eax, byte [rsi + rax + 0x5198]
mov ecx, dword [rsi + rax*4 + 0x517c]
add rcx, rsi
jmp rcx
lea rdx, [0x18014956e]
lea r8, str.__:digit:__
jmp 0x1800049a5
lea rdx, str.alnum
lea r8, [0x180149018]
jmp 0x1800049a5
lea rdx, [0x18014996e]
lea r8, str.__:space:__
jmp 0x1800049a5
lea rdx, [0x1801496d0]
lea r8, str.__:space:________
jmp 0x1800049a5
lea rdx, [0x180149e62]
lea r8, [0x180149e38]
jmp 0x1800049a5
lea rdx, [0x180149e94]
lea r8, str.__:alnum:__
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rcx
mov qword [rbx + 8], r8
mov qword [rbx + 0x10], rdx
mov eax, dword [rbx + 0x30]
mov dword [rbx + 0x34], eax
cmp dword [rbx + 0x28], ebp
je 0x1800046e0
jmp 0x180004a05
mov dword [rbx + 0x34], 0x41
mov word [rbx + 0x38], bp
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
mov eax, 1
jmp 0x180004a07
mov eax, dword [rbx + 0x28]
mov ecx, 9
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
test eax, eax
cmovne ecx, eax
mov dword [rbx + 0x28], ecx
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov eax, dword [rbx + 0x28]
mov ecx, 7
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
jmp 0x1800049fd
cmp eax, 0x70
je 0x1800049d9
mov eax, dword [rbx + 0x28]
mov ecx, 5
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
jmp 0x1800049fd
cmp ecx, 1
jne case.0x180004862.48
cmp dword [rbx + 0x30], 0x5b
je case.0x180004862.48
mov eax, dword [rbx + 0x2c]
not eax
mov dword [rbx + 0x34], 0x5d
and eax, ecx
inc eax
mov dword [rbx + 0x3c], eax
mov eax, ecx
jmp 0x180004a07
cmp r8, rdx
jae case.0x180004764.6
movzx ecx, word [r8]
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
cmp cx, 0x2e
je 0x180004ae4
cmp cx, 0x3a
je 0x180004ac3
cmp cx, 0x3d
je 0x180004aa1
mov qword [rbx + 8], r8
mov dword [rbx + 0x34], WSAStartup
mov eax, 1
mov word [rbx + 0x38], di
jmp 0x180004a07
mov rax, qword [rbx]
mov dword [rbx + 0x3c], 8
or dword [rax + 0x10], 0x400
mov eax, 1
mov dword [rbx + 0x34], 0x45
jmp 0x180004a07
mov rax, qword [rbx]
mov ecx, 9
mov dword [rbx + 0x3c], ecx
or dword [rax + 0x10], 0x400
lea eax, [rcx - 8]
mov dword [rbx + 0x34], 0x43
jmp 0x180004a07
mov ecx, 7
mov dword [rbx + 0x34], 0x49
mov dword [rbx + 0x3c], ecx
lea eax, [rcx - 6]
jmp 0x180004a07
cmp dword [rbx + 0x30], 0x5b
je case.0x180004862.48
cmp r8, rdx
jae 0x180004b11
cmp word [r8], 0x5d
je case.0x180004862.48
mov dword [rbx + 0x34], 0x52
mov eax, 1
mov word [rbx + 0x38], di
jmp 0x180004a07
movzx edx, di
mov rcx, rbx
call fcn.180005930
jmp 0x180004a07
cmp di, 0x2c
je 0x180004c10
cmp di, 0x2f
jbe 0x180004bb2
cmp di, 0x39
jbe 0x180004bf7
cmp di, 0x5c
je 0x180004bc6
cmp di, 0x7d
jne 0x180004bb2
cmp r9d, 4
jne 0x180004bb2
test byte [rbx + 0x2c], 2
mov ecx, 1
mov dword [rbx + 0x3c], ecx
je 0x180004ba0
cmp r8, rdx
jae 0x180004ba0
cmp word [r8], 0x3f
jne 0x180004ba0
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov eax, ecx
mov dword [rbx + 0x34], 0x7d
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov dword [rbx + 0x34], 0x7d
mov eax, ecx
mov word [rbx + 0x38], cx
jmp 0x180004a07
mov eax, dword [rbx + 0x28]
mov ecx, 0xa
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
jmp 0x1800049fd
cmp r9d, 5
jne 0x180004bb2
cmp r8, rdx
jae 0x180004bb2
cmp word [r8], 0x7d
jne 0x180004bb2
lea rax, [r8 + 2]
mov dword [rbx + 0x3c], 2
mov qword [rbx + 8], rax
lea eax, [r9 - 4]
mov dword [rbx + 0x34], 0x7d
jmp 0x180004a07
sub di, 0x30
mov dword [rbx + 0x34], WSAAsyncSelect
mov word [rbx + 0x38], di
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], 0x2c
mov eax, 1
jmp 0x180004a07
cmp di, 0x2e
jne case.0x180004862.48
cmp r8, rdx
jae case.0x180004862.48
cmp word [r8], 0x5d
jne case.0x180004862.48
lea rax, [r8 + 2]
mov dword [rbx + 0x3c], 6
mov qword [rbx + 8], rax
mov eax, 0x2e
mov word [rbx + 0x38], ax
mov eax, 1
mov dword [rbx + 0x34], 0x58
jmp 0x180004a07
cmp di, 0x3d
jne case.0x180004862.48
cmp r8, rdx
jae case.0x180004862.48
cmp word [r8], 0x5d
jne case.0x180004862.48
lea rax, [r8 + 2]
mov dword [rbx + 0x3c], 6
mov qword [rbx + 8], rax
mov eax, 0x3d
mov word [rbx + 0x38], ax
mov eax, 1
mov dword [rbx + 0x34], 0x58
jmp 0x180004a07
cmp di, 0x3a
jne case.0x180004862.48
cmp r8, rdx
jae case.0x180004862.48
cmp word [r8], 0x5d
jne case.0x180004862.48
lea rax, [r8 + 2]
mov dword [rbx + 0x3c], 6
mov qword [rbx + 8], rax
mov eax, 0x3a
mov word [rbx + 0x38], ax
mov eax, 1
mov dword [rbx + 0x34], 0x58
jmp 0x180004a07
cmp cx, 0x3a
je 0x180004d34
cmp cx, 0x3d
je 0x180004d16
mov eax, dword [rbx + 0x28]
mov ecx, reloc.WS2_32.dll_listen
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
jmp 0x1800049fd
mov rax, qword [rbx]
mov ecx, 1
or dword [rax + 0x10], 2
mov eax, ecx
mov dword [rbx + 0x34], 0x4c
mov word [rbx + 0x38], cx
jmp 0x180004a07
mov dword [rbx + 0x34], 0x28
mov eax, 1
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov rax, qword [rbx]
or dword [rax + 0x10], 2
mov eax, 1
mov dword [rbx + 0x34], 0x4c
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov dword [rbx + 0x34], 0x28
and eax, 0x10
je 0x180004e61
mov word [rbx + 0x38], bp
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
mov dword [rbx + 0x28], reloc.WS2_32.dll_ntohs
jmp 0x180004a05
mov dword [rbx + 0x34], reloc.WS2_32.dll_WSAAsyncSelect
mov dword [rbx + 0x28], eax
jmp 0x180004a05
movzx edx, word [r8]
mov eax, edx
and edx, 0x1f
shr rax, 5
movzx ecx, word [rsi + rax*2 + 0x15a210]
or rcx, rdx
movzx eax, byte [rcx + rsi + 0x157850]
mov ecx, dword [rsi + rax*4 + 0x157530]
mov eax, 0x23e
and ecx, 0x1f
sar eax, cl
test al, 1
je 0x180004def
mov rax, qword [rbx]
or dword [rax + 0x10], 0x10
mov rax, qword [rbx]
or dword [rax + 0x10], 0x100
mov r8, qword [rbx + 8]
mov dword [rbx + 0x34], WSAStartup
movzx eax, word [r8]
mov word [rbx + 0x38], ax
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], 0x7c
mov eax, 1
jmp 0x180004a07
test byte [rbx + 0x2c], 2
je 0x180004e5a
cmp r8, rdx
jae 0x180004e5a
cmp word [r8], 0x3f
jne 0x180004e5a
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov eax, 1
mov dword [rbx + 0x34], 0x2a
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov dword [rbx + 0x34], 0x2a
mov ecx, 1
mov word [rbx + 0x38], cx
mov eax, ecx
jmp 0x180004a07
test byte [rbx + 0x2c], 2
je 0x180004eaa
cmp r8, rdx
jae 0x180004eaa
cmp word [r8], 0x3f
jne 0x180004eaa
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov eax, 1
mov dword [rbx + 0x34], 0x2b
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov ecx, 1
mov dword [rbx + 0x34], 0x2b
mov word [rbx + 0x38], cx
mov eax, ecx
jmp 0x180004a07
test byte [rbx + 0x2c], 2
je 0x180004efa
cmp r8, rdx
jae 0x180004efa
cmp word [r8], 0x3f
jne 0x180004efa
lea rax, [r8 + 2]
mov qword [rbx + 8], rax
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov eax, 1
mov dword [rbx + 0x34], 0x3f
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov ecx, 1
mov dword [rbx + 0x34], 0x3f
mov word [rbx + 0x38], cx
mov eax, ecx
jmp 0x180004a07
test byte [rbx + 0x2c], 0x20
je 0x180004f27
mov rcx, rbx
call fcn.180005d90
mov r8, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
cmp r8, rdx
jae 0x180004f79
movzx edx, word [r8]
mov eax, edx
and edx, 0x1f
shr rax, 5
movzx ecx, word [rsi + rax*2 + 0x15a210]
or rcx, rdx
movzx eax, byte [rcx + rsi + 0x157850]
mov eax, dword [rsi + rax*4 + 0x157530]
and eax, 0x1f
cmp al, 9
jne 0x180004f79
mov rax, qword [rbx]
or dword [rax + 0x10], 4
mov eax, 1
mov dword [rbx + 0x3c], 4
mov dword [rbx + 0x34], 0x7b
jmp 0x180004a07
mov rax, qword [rbx]
or dword [rax + 0x10], 8
mov rax, qword [rbx]
or dword [rax + 0x10], 0x100
jmp case.0x180004862.48
cmp dword [rbx + 0x30], 0x28
jne 0x180004f9f
mov rax, qword [rbx]
or dword [rax + 0x10], 0x100
mov dword [rbx + 0x34], 0x29
mov eax, 1
mov word [rbx + 0x38], di
jmp 0x180004a07
mov rax, rdx
sub rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 0xc
jl 0x18000502c
cmp word [r8], 0x5b
jne 0x18000502c
cmp word [r8 + 2], 0x3a
jne 0x18000502c
movzx ecx, word [r8 + 4]
mov r9d, 0xfffd
lea eax, [rcx - 0x3c]
test r9w, ax
jne 0x18000502c
cmp word [r8 + 6], 0x3a
jne 0x18000502c
cmp word [r8 + 8], 0x5d
jne 0x18000502c
cmp word [r8 + 0xa], 0x5d
jne 0x18000502c
mov edx, 0x3c
lea rax, [r8 + 0xc]
mov qword [rbx + 8], rax
mov rax, qword [rbx]
or dword [rax + 0x10], 0x80
mov eax, 0x3e
cmp cx, dx
cmove eax, edx
mov dword [rbx + 0x34], eax
lea eax, [rdx - 0x3b]
jmp 0x180004a07
mov dword [rbx + 0x3c], 6
cmp r8, rdx
jae 0x18000505c
cmp word [r8], 0x5e
jne 0x18000505c
lea rax, [r8 + 2]
mov dword [rbx + 0x34], 0x5b
mov qword [rbx + 8], rax
mov eax, 1
mov word [rbx + 0x38], bp
jmp 0x180004a07
mov ecx, 1
mov dword [rbx + 0x34], 0x5b
mov word [rbx + 0x38], cx
mov eax, ecx
jmp 0x180004a07
mov eax, 0x2e
mov dword [rbx + 0x34], eax
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], 0x5e
mov eax, 1
jmp 0x180004a07
mov dword [rbx + 0x34], 0x24
mov eax, 1
jmp 0x180004a07