Function at 0x18000d660
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov r12, rdx
mov r14, rcx
mov edx, 0x30
mov qword [rbp + 0x80], r8
mov rcx, r8
call fcn.180022f80
mov al, 1
mov qword [rbp + 0xa0], rax
cmp r14, r12
jae 0x18000df71
mov al, 1
mov qword [rbp + 0xa0], rax
xor eax, eax
mov qword [rbp + 0x78], rax
jmp 0x18000d729
mov esi, dword [rbp + 0x8a]
movabs rax, 0x15af729f11eec9cd
lea rcx, [rax + 7]
call fcn.180005e20
add eax, esi
mov dword [rbp + 0x8a], eax
mov rcx, qword [rbx + 0x10]
mov r8d, reloc.WS2_32.dll_select
lea rdx, [rbp + 0x88]
call fcn.18000cac0
mov edx, dword [rbp + 0x78]
mov rcx, qword [rbp + 0x70]
call fcn.18002ba90
mov rcx, rbx
call fcn.18000b500
mov cl, 1
mov qword [rbp + 0x78], rcx
xor ecx, ecx
mov qword [rbp + 0xa0], rcx
test al, al
je 0x18000df71
nop word [rax + rax]
cmp r14, r12
jae 0x18000df71
movabs rax, 0xffffffff00000000
lea rdi, [r14 + rax]
mov rbx, r14
sub rbx, qword [rbp + 0x60]
mov r15, r14
jmp 0x18000d75e
cmp r15, r12
jae 0x18000d77a
inc r15
inc rdi
inc rbx
movzx esi, byte [r15]
cmp esi, 0x20
je 0x18000d750
mov ecx, 0x11eec9cf
call fcn.180010450
cmp r15, r12
jae 0x18000d77a
cmp eax, esi
je 0x18000d755
cmp r15, r12
je 0x18000df71
mov edi, 0xffffffff
mov r14, r15
nop dword [rax + rax]
mov rax, r14
inc r14
inc rdi
cmp rax, r12
jae 0x18000d7a3
cmp byte [rax], 0xa
jne 0x18000d790
xor r13d, r13d
cmp rax, r12
setb r13b
mov ecx, edi
sub ecx, r13d
call fcn.18003afb0
test al, 1
je 0x18000d720
cmp byte [r15], 0x3b
je 0x18000d720
sub rdi, r13
mov rax, qword [rbp + 0x78]
cmp al, 2
je 0x18000d9dc
movzx eax, al
cmp eax, 1
je 0x18000dada
test eax, eax
jne 0x18000d720
mov qword [rbp + 0x70], 0
xor edx, edx
cmp byte [r14 - 2], 0xd
sete dl
not rdx
add rdx, r14
mov dword [rsp + 0x20], 8
mov rcx, r15
lea r8, [rbp + 0x70]
xor r9d, r9d
call fcn.180007f50
test eax, eax
je 0x18000df68
mov ebx, eax
cmp eax, 3
jb 0x18000df51
mov r13, qword [rbp + 0x70]
mov rsi, qword [r13]
lea rcx, [0x1800596e0]
lea rdx, [rbp - 7]
call fcn.180001d00
mov rcx, rax
mov rdx, rsi
mov r8d, 0xffffffff
mov r9d, 0xffffffff
call fcn.180040a50
test eax, eax
jne 0x18000df51
mov edx, reloc.WS2_32.dll_select
lea rcx, [rbp + 0x88]
call fcn.180022f80
mov rcx, qword [r13 + 0x10]
call fcn.18004b690
mov r15, rax
movzx edi, word [rbp + 0x88]
test r15d, r15d
mov dword [rbp + 0x78], ebx
mov qword [rbp + 0xa0], r13
jle 0x18000dc10
xor ebx, ebx
jmp 0x18000d8fa
movzx edi, di
mov r13d, edi
not r13d
mov ecx, 0x88d915c8
call fcn.180015780
mov esi, eax
and r13d, 0x15c8
and edi, eax
mov ecx, 0x9937dc0e
call fcn.180010450
and eax, 0xffdf
and esi, 0x20
or esi, eax
or r13d, edi
xor r13d, esi
and edi, 0x20
or edi, r13d
mov r13, qword [rbp + 0xa0]
mov ecx, 0x11eec9c7
call fcn.180010450
add ebx, eax
cmp ebx, r15d
jge 0x18000dc10
mov rax, qword [r13 + 0x10]
movsxd rcx, ebx
movsx esi, byte [rax + rcx]
mov ecx, esi
call fcn.18001c1f0
test al, 1
jne 0x18000d8a0
cmp sil, 0x47
jne 0x18000d940
movzx r13d, di
mov esi, r13d
and esi, 0x40
mov ecx, 0x11eec986
call fcn.180010450
mov edi, eax
xor edi, r13d
mov r13, qword [rbp + 0xa0]
or edi, esi
jmp 0x18000d8e5
mov ecx, 0x11eec98a
call fcn.180010450
cmp eax, esi
jne 0x18000d953
or edi, 8
jmp 0x18000d8e5
cmp sil, 0x44
je 0x18000d96e
movzx eax, sil
cmp eax, 0x48
je 0x18000d975
cmp eax, 0x46
jne 0x18000d980
mov ecx, 0x11eecbc6
jmp 0x18000d993
mov ecx, 0x11eec9d6
jmp 0x18000d993
or edi, 0x100
jmp 0x18000d8e5
mov ecx, 0x11eec98f
call fcn.180010450
cmp eax, esi
jne 0x18000d99f
mov ecx, 0x11eed9c6
call fcn.180010450
or edi, eax
jmp 0x18000d8e5
cmp sil, 0x42
je 0x18000d9d1
movzx eax, sil
cmp eax, 0x43
jne 0x18000d8e5
movzx edi, di
mov ecx, edi
not ecx
call fcn.18001e840
and edi, 0xb8f3
or edi, eax
xor edi, 0x470c
jmp 0x18000d8e5
or edi, 0x4000
jmp 0x18000d8e5
mov esi, edi
movabs rax, 0x15af729f11eec9cd
lea rcx, [rax + 1]
call fcn.180005e20
cmp rsi, rax
jb 0x18000d720
lea rcx, [0x18005bee4]
lea rdx, [rbp - 0x2c]
call fcn.180001d00
mov rdi, rax
lea rcx, [0x180059580]
call fcn.18002a820
mov rcx, rdi
mov rdx, r15
mov r8d, 8
call rax
test eax, eax
jne 0x18000d720
xor eax, eax
cmp r15, qword [rbp + 0x60]
jbe 0x18000da52
mov rcx, rbx
call fcn.1800010c0
add eax, 0xe1bd0388
cmp byte [r15 - 2], 0xd
jne 0x18000da52
mov ecx, eax
call fcn.180034cd0
cmp eax, 0x3fff8
ja 0x18000df71
mov esi, eax
lea rbx, [rsi + 6]
mov rcx, rbx
call fcn.1800190d0
mov rcx, qword [rbp + 0x58]
mov qword [rcx], rax
test rax, rax
je 0x18000df71
mov word [rax + 4], 0
mov rax, qword [rcx]
mov dword [rax], ebx
mov rcx, qword [rcx]
add rcx, 6
mov rdx, qword [rbp + 0x60]
mov r8, rsi
call fcn.18000cac0
mov rsi, qword [rbp + 0x80]
mov rcx, rsi
call fcn.180034d60
test al, al
je 0x18000daca
mov rcx, rsi
call fcn.18000b500
test al, al
je 0x18000df71
mov cl, 0xc7
call fcn.1800119e0
mov qword [rbp + 0xa0], rax
mov cl, 0xc7
call fcn.1800119e0
mov qword [rbp + 0x78], rax
jmp 0x18000d720
mov ebx, edi
cmp rbx, 8
jb 0x18000db35
lea rcx, [0x1800596e0]
lea rdx, [rbp + 0x48]
call fcn.180001d00
mov rsi, rax
lea rcx, [0x180059580]
call fcn.18002a820
mov rcx, rsi
mov rdx, r15
mov r8d, 7
call rax
test eax, eax
jne 0x18000db35
movzx esi, byte [r15 + 7]
mov ecx, 0x11eec9e6
call fcn.180010450
cmp eax, esi
je 0x18000dfb9
cmp byte [r15 + 7], 9
je 0x18000dfb9
movabs rcx, 0x15af729f11eec9cd
call fcn.180005e20
cmp rbx, rax
jb 0x18000db88
lea rcx, [0x18005a224]
lea rdx, [rbp + 0x33]
call fcn.180001d00
mov rsi, rax
lea rcx, [0x180059580]
call fcn.18002a820
mov rdi, rax
mov ecx, 0x11eec9cd
call fcn.180010450
mov rcx, rsi
mov rdx, r15
mov r8d, eax
call rdi
test eax, eax
je 0x18000df03
cmp ebx, 0xb
jb 0x18000dbc2
lea rcx, [0x180059ed0]
lea rdx, [rbp + 0x18]
call fcn.180001d00
mov rsi, rax
lea rcx, [0x180059580]
call fcn.18002a820
mov rcx, rsi
mov rdx, r15
mov r8d, recv
call rax
test eax, eax
je 0x18000df35
cmp ebx, 0xa
jb 0x18000df68
lea rcx, [0x18005bb98]
lea rdx, [rbp - 0x52]
call fcn.180001d00
mov rbx, rax
lea rcx, [0x180059580]
call fcn.18002a820
mov rcx, rbx
mov rdx, r15
mov r8d, 0xa
call rax
test eax, eax
jne 0x18000df68
mov rax, qword [rbp + 0x80]
mov rsi, qword [rax + 0x28]
jmp 0x18000df0e
mov word [rbp + 0x88], di
movzx esi, di
test sil, 8
jne 0x18000dc43
mov ecx, 0xf9376e99
call fcn.180010450
mov ecx, eax
xor ecx, 0x58a4
and ecx, esi
xor ecx, eax
xor ecx, 0xa75b
mov word [rbp + 0x88], cx
mov rcx, qword [r13 + 8]
call fcn.18004b690
mov rsi, r13
mov r13, rax
mov word [rbp + 0x8e], r13w
mov ecx, 0x11eec9c5
call fcn.180010450
mov edi, dword [rbp + 0x78]
cmp edi, eax
jbe 0x18000dc84
mov rcx, qword [rsi + 0x18]
cmp byte [rcx], 0x2a
jne 0x18000dc7a
cmp byte [rcx + 1], 0
je 0x18000dc84
call fcn.18004b690
mov r15, rax
jmp 0x18000dc87
xor r15d, r15d
mov word [rbp + 0x92], r15w
cmp edi, 5
jb 0x18000dcb1
mov rax, qword [rbp + 0xa0]
mov rax, qword [rax + 0x20]
cmp byte [rax], 0x2a
jne 0x18000dcb5
movsx ecx, byte [rax + 1]
call fcn.180016c50
test al, 1
je 0x18000dcb5
xor eax, eax
jmp 0x18000dcc5
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax + 0x20]
call fcn.18004b690
mov word [rbp + 0x94], ax
cmp edi, 6
mov qword [rbp + 0x68], rax
jb 0x18000dcea
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax + 0x28]
call fcn.18004b690
mov rsi, rax
jmp 0x18000dcec
xor esi, esi
mov word [rbp + 0x96], si
cmp edi, 7
jb 0x18000dd0d
mov rax, qword [rbp + 0xa0]
mov rcx, qword [rax + 0x30]
call fcn.18004b690
mov rbx, rax
jmp 0x18000dd0f
xor ebx, ebx
mov word [rbp + 0x98], bx
movzx edi, r13w
movabs rax, 0x15af729f11eec9cd
lea rcx, [rax + 0xd]
call fcn.180005e20
movzx ecx, r15w
add rcx, rdi
movzx edx, word [rbp + 0x68]
add rdx, rcx
movzx edi, si
add rdi, rdx
movzx ecx, bx
add rcx, rdi
add rcx, rax
call fcn.1800190d0
mov rbx, qword [rbp + 0x80]
mov qword [rbx + 0x10], rax
test rax, rax
je 0x18000df59
mov rsi, rax
add rsi, 0x12
test r13w, r13w
je 0x18000ddbb
mov cx, 0xc9c7
call fcn.1800216d0
lea edi, [rax + r13]
mov word [rbp + 0x8e], di
mov r13, rbx
movzx ebx, di
mov rax, qword [rbp + 0xa0]
mov rdx, qword [rax + 8]
mov rcx, rsi
mov r8, rbx
call fcn.18000cac0
movzx eax, di
mov ecx, dword [r13 + 0x10]
mov edx, esi
sub edx, ecx
mov word [rbp + 0x8e], dx
add rsi, rbx
add dword [rbp + 0x8a], eax
test r15w, r15w
je 0x18000de09
mov ecx, r15d
call fcn.1800059c0
mov word [rbp + 0x92], ax
movzx ebx, ax
mov rdi, qword [rbp + 0xa0]
mov rdx, qword [rdi + 0x18]
mov rcx, rsi
mov r8, rbx
call fcn.18000cac0
mov rax, qword [rbp + 0x80]
mov eax, dword [rax + 0x10]
mov ecx, esi
sub ecx, eax
mov word [rbp + 0x92], cx
add rsi, rbx
add dword [rbp + 0x8a], ebx
jmp 0x18000de10
mov rdi, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0x68]
test cx, cx
je 0x18000de5c
call fcn.1800059c0
mov word [rbp + 0x94], ax
movzx r8d, ax
mov rdx, qword [rdi + 0x20]
mov rcx, rsi
call fcn.18000cac0
movzx eax, word [rbp + 0x94]
mov rbx, qword [rbp + 0x80]
mov ecx, dword [rbx + 0x10]
mov edx, esi
sub edx, ecx
mov word [rbp + 0x94], dx
add rsi, rax
add dword [rbp + 0x8a], eax
jmp 0x18000de63
mov rbx, qword [rbp + 0x80]
movzx edi, word [rbp + 0x96]
movzx ecx, di
call fcn.1800217c0
test al, 1
je 0x18000deb1
inc edi
mov word [rbp + 0x96], di
movzx r8d, di
mov rax, qword [rbp + 0x70]
mov rdx, qword [rax + 0x28]
mov rcx, rsi
call fcn.18000cac0
movzx eax, word [rbp + 0x96]
mov ecx, dword [rbx + 0x10]
mov edx, esi
sub edx, ecx
mov word [rbp + 0x96], dx
add rsi, rax
add dword [rbp + 0x8a], eax
movzx edi, word [rbp + 0x98]
test di, di
je 0x18000d6b8
mov cx, 0xc9c7
call fcn.1800216d0
add edi, eax
mov word [rbp + 0x98], di
movzx r8d, di
mov rax, qword [rbp + 0x70]
mov rdx, qword [rax + 0x30]
mov rcx, rsi
call fcn.18000cac0
movzx eax, word [rbp + 0x98]
sub esi, dword [rbx + 0x10]
mov word [rbp + 0x98], si
add dword [rbp + 0x8a], eax
jmp 0x18000d6b8
mov rax, qword [rbp + 0x80]
mov rsi, qword [rax + 0x18]
mov edi, dword [rax + 8]
dec edi
mov eax, edi
lea rax, [rsi + rax*8]
mov qword [rbp + 0x58], rax
mov al, 2
mov qword [rbp + 0x78], rax
xor eax, eax
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0x60], r14
jmp 0x18000d720
mov rax, qword [rbp + 0x80]
mov rsi, qword [rax + 0x20]
mov edi, dword [rax + 8]
mov ecx, 0x11eec9c7
call fcn.180010450
sub edi, eax
jmp 0x18000df13
mov edx, ebx
mov rcx, qword [rbp + 0x70]
jmp 0x18000df63
mov edx, dword [rbp + 0x78]
mov rcx, qword [rbp + 0xa0]
call fcn.18002ba90
xor eax, eax
mov qword [rbp + 0xa0], rax
mov rsi, qword [rbp + 0xa0]
test sil, 1
je 0x18000df93
mov rcx, qword [rbp + 0x80]
mov eax, dword [rcx + 8]
test eax, eax
je 0x18000df9f
dec eax
mov dword [rcx + 8], eax
jmp 0x18000df9f
mov rcx, qword [rbp + 0x80]
call fcn.1800076b0
and sil, 1
mov eax, esi
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp + 0x80]
mov qword [rax], r15
jmp 0x18000df71