Function at 0x14009f140
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbp, qword [rdx + 8]
xor eax, eax
test rbp, rbp
je 0x14009f724
mov r9, qword [rbp + 0xc8]
test r9, r9
je 0x14009f724
mov r14, rdx
mov r15, rcx
mov r8, qword [rdx + 0x28]
mov r12b, byte [r8 - 3]
test r12b, 0x40
je 0x14009f18d
cmp byte [rbp + 0x44], 0x5a
jne 0x14009f3d5
lea rdi, [r8 - 0x30]
mov r11d, dword [r8 - 0x30]
mov ecx, dword [r8 - 0x2c]
cmp ecx, r11d
mov eax, ecx
cmovb eax, r11d
mov r10d, dword [r15 + 0x90]
mov qword [rsp + 0x40], rax
lea r13d, [rax + r10]
mov rsi, r9
nop word cs:[rax + rax]
nop
cmp word [rsi + 0x10], 4
jne 0x14009f1d3
mov rsi, qword [rsi + 0xc8]
test rsi, rsi
jne 0x14009f1c0
mov rbx, r9
nop word cs:[rax + rax]
mov rbx, qword [rbx + 0xd0]
test rbx, rbx
je 0x14009f1f5
cmp word [rbx + 0x10], 4
je 0x14009f1e0
jmp 0x14009f1f8
mov rbx, rbp
mov al, byte [r15 + 0x1a3]
mov byte [rsp + 0x2f], al
cmp al, 3
jne 0x14009f2c5
mov rdx, qword [r15 + 0x290]
mov rax, qword [rdx + 0x110]
mov rdx, qword [rdx + 0x118]
test rdx, rdx
je 0x14009f27d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], r9
mov r9d, r12d
mov r12, r15
mov r15, r10
mov r10d, r13d
mov rdi, r11
mov r11d, dword [rbp + 0x10]
xor r13d, r13d
cmp r11w, 1
je 0x14009f25b
add r11d, 0xfffffff9
cmp r11w, 0xc
jb 0x14009f25b
mov r13, qword [rbp + 8]
cmp r13, rdx
mov r11, rdi
mov r13d, r10d
mov r10, r15
mov r15, r12
mov r12d, r9d
mov r9, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
je 0x14009f3e1
test rax, rax
je 0x14009f2c5
mov qword [rsp + 0x30], r10
mov r10d, r12d
mov r12, r11
mov r11d, r13d
mov r13, rdi
mov edi, dword [rbp + 0x10]
xor edx, edx
cmp di, 1
je 0x14009f2ab
add edi, 0xfffffff9
cmp di, 0xc
jb 0x14009f2ab
mov rdx, qword [rbp + 8]
cmp rdx, rax
mov rdi, r13
mov r13d, r11d
mov r11, r12
mov r12d, r10d
mov r10, qword [rsp + 0x30]
je 0x14009f3e1
cmp byte [r15 + 0x4c], 5
jne 0x14009f2ee
mov rax, qword [r14 + 0x40]
mov rax, qword [rax]
cmp word [rax + 0x10], 0x56
jne 0x14009f2ee
mov ecx, dword [r15 + 0x180]
mov eax, dword [rax + 0x7c]
imul eax, ecx
add eax, ecx
jmp 0x14009f724
movzx ecx, word [rbx + 0x10]
cmp cx, 0x17
jne 0x14009f31a
mov eax, 0x3000
and eax, dword [rbx + 0x40]
cmp eax, 0x1000
jne 0x14009f31a
add r14, 0x3c
cmp dword [rbp + 0x78], 0
cmove rdi, r14
mov eax, dword [rdi]
jmp 0x14009f724
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0x30], eax
add eax, 0xffffffec
cmp ax, 0x1f
ja case.0x14009f33f.1
movzx eax, ax
lea rdx, [0x14009f958]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov rax, qword [r14 + 0x20]
mov rdx, r8
sub rdx, rax
sar rdx, 3
movabs rdi, 0x6db6db6db6db6db7
imul rdx, rdi
cmp rdx, 2
jb case.0x14009f33f.1
cmp byte [rbp + 0x44], 0x4b
jne 0x14009f395
cmp qword [rbp + 0x20], 0
je 0x14009f37d
mov rcx, qword [rbp + 0x18]
cmp byte [rcx], 0x7d
je 0x14009f3c8
cmp word [rsp + 0x30], 0x18
ja 0x14009f395
movzx ecx, word [rsp + 0x30]
mov ebx, 0x1500000
bt rbx, rcx
jb 0x14009f3c8
mov rcx, qword [rbp + 0xc0]
test rcx, rcx
je 0x14009f5e1
mov rdx, r15
call fcn.140095e80
test al, al
je 0x14009f5b9
mov rax, qword [r14 + 0x20]
mov rdx, qword [r14 + 0x28]
sub rdx, rax
sar rdx, 3
imul rdx, rdi
imul rcx, rdx, 0x38
mov eax, dword [rcx + rax - 0x60]
jmp 0x14009f724
mov eax, dword [r8 - 0x1c]
add eax, 2
jmp 0x14009f724
add r10d, r11d
cmp ecx, r10d
cmovae r10d, ecx
mov eax, r10d
jmp 0x14009f724
mov rax, qword [r14 + 0x20]
mov rdi, r8
sub rdi, rax
sar rdi, 3
movabs rdx, 0x6db6db6db6db6db7
imul rdx, rdi
cmp rdx, 2
jb case.0x14009f33f.1
mov rdi, qword [rbp + 0xd0]
test rdi, rdi
je 0x14009f45d
mov edi, dword [rdi + 0x10]
add edi, 0xffffffe9
cmp di, 0x39
ja case.0x14009f33f.1
mov qword [rsp + 0x38], r9
mov r9d, r12d
mov r12, r15
mov r15, r10
movzx r10d, di
movabs rdi, 0x200008000000001
bt rdi, r10
mov r10, r15
mov r15, r12
mov r12d, r9d
mov r9, qword [rsp + 0x38]
jae case.0x14009f33f.1
imul rcx, rdx, 0x38
mov eax, dword [rcx + rax - 0x64]
jmp 0x14009f724
cmp byte [rsp + 0x2f], 8
je case.0x14009f33f.0
cmp byte [rsp + 0x2f], 6
je case.0x14009f33f.0
mov dil, byte [rbx + 0x44]
cmp dil, 0x4b
jne 0x14009f4b7
cmp qword [rbx + 0x20], 0
je 0x14009f49a
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x7d
je 0x14009f4ae
cmp cx, 0x18
ja 0x14009f4b7
movzx eax, cx
mov edx, 0x1500000
bt rdx, rax
jae 0x14009f4b7
mov eax, dword [r8 - 0x64]
jmp 0x14009f724
cmp word [rsp + 0x30], 5
jne 0x14009f4f7
mov rax, qword [rbp + 0xd0]
test rax, rax
je 0x14009f4f7
cmp byte [rax + 0x44], 0x13
jne 0x14009f4d9
mov eax, r11d
jmp 0x14009f724
cmp byte [rsp + 0x2f], 8
je 0x14009f4e7
cmp byte [rsp + 0x2f], 6
jne 0x14009f4f7
movzx eax, word [rax + 0x10]
cmp ax, 0x17
je 0x14009f4d1
cmp ax, 0x2e
je 0x14009f4d1
cmp dil, 0x3d
jne 0x14009f50d
mov eax, dword [r14 + 0x1c]
test eax, eax
je 0x14009f50d
add eax, 0xffffffff
jmp 0x14009f724
lea eax, [rcx - 0xd]
cmp ax, 0x39
ja 0x14009f568
movzx eax, ax
mov edx, 0x3b
bt rdx, rax
jae 0x14009f532
mov eax, dword [r14 + 0x1c]
test eax, eax
jne 0x14009f724
jmp 0x14009f568
movabs rdx, 0x200000000801000
bt rdx, rax
jae 0x14009f5ea
lea eax, [rdi - 0x12]
cmp al, 0x3c
ja 0x14009f717
movzx eax, al
movabs rdx, 0x1000000090000001
bt rdx, rax
jae 0x14009f717
mov eax, dword [r8 - 0x20]
test eax, eax
je 0x14009f672
cmp cx, 0x3d
jne 0x14009f608
cmp dil, 0xa
je 0x14009f58f
cmp byte [r9 + 0x44], 0xa
jne 0x14009f672
mov rcx, qword [rbx + 0xd0]
test rcx, rcx
je 0x14009f60f
mov edx, dword [rcx + 0x98]
test rdx, rdx
je 0x14009f60f
mov rcx, qword [rcx + 0x90]
cmp dword [rcx + rdx*4 - 4], 3
jne 0x14009f60f
jmp 0x14009f63c
mov rax, qword [rbp + 0xc0]
test rax, rax
je 0x14009f5e1
mov ecx, 0x3000
and ecx, dword [rax + 0x40]
cmp ecx, 0x2000
jne 0x14009f5e1
mov rax, qword [r14 + 0x28]
mov eax, dword [rax - 0x64]
jmp 0x14009f724
mov eax, dword [r14 + 0x3c]
jmp 0x14009f724
cmp rax, 0x22
jne 0x14009f568
mov eax, dword [r8 - 0x24]
test eax, eax
jne 0x14009f724
mov eax, dword [r8 - 0x20]
test eax, eax
je 0x14009f672
cmp byte [r9 + 0x44], 0xa
jne 0x14009f672
cmp word [r9 + 0x10], 0x3d
jne 0x14009f724
mov ecx, dword [rbp + 0x98]
test rcx, rcx
je 0x14009f724
mov rdx, qword [rbp + 0x90]
cmp dword [rdx + rcx*4 - 4], 3
jne 0x14009f724
mov cl, byte [r8 - 2]
test cl, 1
jne 0x14009f724
xor eax, eax
cmp byte [r15 + 0x19], 0
cmove r10d, eax
sub r11d, r10d
cmp byte [r15 + 0x60], 0
je 0x14009f4d1
lea eax, [r11 - 2]
test cl, 2
cmove eax, r11d
jmp 0x14009f724
movzx eax, word [r9 + 0x10]
mov word [rsp + 0x38], ax
cmp ax, 0x41
jne 0x14009f68e
mov eax, dword [r8 - 8]
test eax, eax
jne 0x14009f724
test rsi, rsi
je 0x14009f6ba
test byte [rsi + 0x40], 0x40
jne 0x14009f6b3
movzx eax, byte [rsi + 0x44]
cmp rax, 0x31
ja 0x14009f6ba
movabs rdx, 0x2000080200030
bt rdx, rax
jae 0x14009f6ba
mov rax, qword [rsp + 0x40]
jmp 0x14009f724
mov dl, byte [r15 + 0x184]
test dl, dl
jne 0x14009f6da
movzx eax, cx
cmp eax, 0x8a
je 0x14009f6b3
mov rax, qword [rsp + 0x40]
cmp dil, 0x16
je 0x14009f724
mov rax, rdi
cmp al, 0x44
jne 0x14009f735
test r12b, 4
jne 0x14009f74d
add r10d, dword [r14 + 0x3c]
cmp r11d, r10d
cmovae r10d, r11d
mov rax, qword [r14 + 0x40]
test dl, dl
cmovne r11d, r10d
cmp dword [rax + 0x20], 3
cmove r11d, r10d
mov eax, dword [rbx + 0x84]
xor ecx, ecx
sub eax, dword [rbx + 0x50]
cmovb eax, ecx
add eax, r11d
jmp 0x14009f724
mov eax, dword [r8 - 0xc]
test eax, eax
cmovne r13d, eax
mov eax, r13d
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp cx, 0x3d
jne 0x14009f767
cmp al, 0x3f
jg 0x14009f78d
cmp al, 1
je 0x14009f76b
cmp al, 0x3a
jne 0x14009f795
mov eax, dword [r8 - 0x1c]
jmp 0x14009f724
test r12b, 2
je 0x14009f4d1
mov eax, dword [r8 - 0x1c]
sub eax, dword [rbx + 0x50]
cmova r11d, eax
mov eax, r11d
jmp 0x14009f724
cmp al, 1
jne 0x14009f77e
mov eax, dword [r8 - 0x14]
test eax, eax
jne 0x14009f724
cmp byte [rsp + 0x2f], 2
cmove r13d, r11d
jmp 0x14009f721
cmp cx, 5
jne 0x14009f78d
cmp dword [rbx + 0xb0], 0
je 0x14009f7fd
cmp al, 0x40
je 0x14009f721
cmp al, 0x45
je 0x14009f721
movzx eax, word [rsp + 0x38]
cmp ax, 0x3f
je 0x14009f721
cmp ax, 0x47
je 0x14009f721
cmp byte [r9 + 0x44], 0x28
je 0x14009f721
test rsi, rsi
je 0x14009f818
cmp word [rsi + 0x10], 0x3d
jne 0x14009f7d4
mov al, byte [rsi + 0x44]
cmp al, 0x13
je 0x14009f721
cmp al, 0x3a
je 0x14009f721
cmp dil, 0x10
je 0x14009f4d1
mov al, byte [rsi + 0x44]
cmp al, 0x1a
je 0x14009f87d
cmp al, 0xf
mov rdx, r15
jne 0x14009f891
cmp byte [rdx + 0x61], 2
jmp 0x14009f888
mov rcx, qword [rbx + 0xd0]
test rcx, rcx
je 0x14009f78d
cmp byte [rcx + 0x44], 0x3a
je 0x14009f4d1
jmp 0x14009f78d
lea eax, [rdi - 0x1a]
cmp al, 2
mov rdx, r15
jb 0x14009f8a6
cmp dil, 0xf
je 0x14009f8a6
mov eax, r11d
cmp dil, 0x10
je 0x14009f724
cmp word [rsp + 0x38], 0x16
jne 0x14009f86b
mov ecx, dword [rsp + 0x30]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 1
jg 0x14009f86b
movzx ecx, word [rbp + 0x10]
cmp cx, 0x3d
je 0x14009f86b
mov eax, r13d
cmp cx, 4
jne 0x14009f724
cmp byte [rbp + 0x44], 0x4c
jne 0x14009f8b5
mov rax, qword [r14 + 0x28]
mov eax, dword [rax - 0x30]
jmp 0x14009f724
mov rdx, r15
cmp byte [r15 + 0x88], 2
mov eax, r11d
je 0x14009f724
cmp dil, 0x1b
ja 0x14009f839
movzx eax, dil
mov ecx, 0xc008000
bt rcx, rax
jae 0x14009f839
mov eax, dword [rdx + 0x8c]
add eax, dword [r14 + 0x3c]
jmp 0x14009f724
movzx ecx, word [rbp + 0x10]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 2
jl 0x14009f8d2
mov rax, qword [r14 + 0x28]
test byte [rax - 2], 2
jne 0x14009f93c
cmp word [rbp + 0x10], 4
je 0x14009f8e4
mov al, byte [rbp + 0x44]
cmp al, 0x32
je 0x14009f8e4
cmp al, 8
jne 0x14009f901
movzx ecx, word [rbx + 0x10]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 2
jl 0x14009f901
mov rax, qword [r14 + 0x28]
test byte [rax - 2], 2
jne 0x14009f94a
mov rax, qword [r14 + 0x28]
mov eax, dword [rax - 0x30]
test rsi, rsi
je 0x14009f724
cmp eax, dword [r14 + 0x3c]
jne 0x14009f724
cmp word [rsi + 0x10], 0x18
je 0x14009f724
cmp byte [rsi + 0x44], 0x10
je 0x14009f724
add eax, dword [r15 + 0x90]
jmp 0x14009f724
mov eax, dword [rax - 0x30]
sub eax, dword [rbp + 4]
sub eax, dword [rbp + 0x58]
jmp 0x14009f724
mov eax, dword [rax - 0x30]
sub eax, dword [rbx + 4]
sub eax, dword [rbx + 0x58]
jmp 0x14009f724