Function at 0x140049934
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r15
mov rbp, rsp
sub rsp, 0x30
and dword [rbp + 0x38], 0
mov esi, r8d
and dword [rbp + 0x3c], 0
mov rbx, rdx
mov rdi, rcx
mov r15d, 9
cmp esi, 5
jg 0x140049b2d
je 0x140049af6
mov ecx, esi
test esi, esi
je 0x1400499d3
sub ecx, 1
je 0x140049a38
sub ecx, 1
je 0x140049a80
sub ecx, 1
je 0x140049abc
cmp ecx, 1
jne 0x140049efc
cmp dword [rdi + 4], 0x5e
jne 0x140049af6
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 5
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
xor dword [rbx], eax
jmp 0x140049b7e
cmp dword [rdi + 4], 0x3f
jne 0x140049a38
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.1400498f0
cmp dword [rdi + 4], 0x3a
mov rcx, rdi
jne 0x140049f0f
call fcn.14004a5ec
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.14004a518
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx], 0
mov eax, dword [rbp - 0x10]
cmovne eax, dword [rbp + 0x38]
mov dword [rbx], eax
mov eax, dword [rbp - 0xc]
cmp dword [rbp + 0x3c], eax
cmova eax, dword [rbp + 0x3c]
mov dword [rbx + 4], eax
jmp 0x140049960
cmp dword [rdi + 4], 0x104
jne 0x140049a80
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 2
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx], 0
je 0x140049ab4
mov eax, 1
mov dword [rbx], eax
mov dword [rbx + 4], r15d
jmp 0x140049960
xor eax, eax
jmp 0x140049a71
cmp dword [rdi + 4], 0x105
jne 0x140049abc
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 3
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx], 0
je 0x140049a7c
cmp dword [rbp + 0x38], 0
je 0x140049a7c
jmp 0x140049a6c
cmp dword [rdi + 4], 0x7c
jne 0x140049999
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 4
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
or dword [rbx], eax
jmp 0x140049b7e
cmp dword [rdi + 4], 0x26
jne 0x140049b8f
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 6
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
and dword [rbx], eax
jmp 0x140049b7e
mov ecx, esi
sub ecx, 6
je 0x140049b8f
sub ecx, 1
je 0x140049c0a
sub ecx, 1
je 0x140049d65
sub ecx, 1
je 0x140049dde
cmp ecx, 1
jne 0x140049efc
cmp dword [rdi + 4], 0x2a
jne 0x140049e4e
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov eax, dword [rbp + 0x38]
imul eax, dword [rbx]
mov dword [rbx], eax
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rbx + 4]
jbe 0x140049960
jmp 0x140049a30
cmp dword [rdi + 4], 0x106
jne 0x140049bcf
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
sete cl
mov dword [rbx], ecx
jmp 0x140049a73
cmp dword [rdi + 4], 0x107
jne 0x140049c0a
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setne cl
jmp 0x140049bc8
mov eax, dword [rdi + 4]
cmp eax, 0x3c
jne 0x140049c62
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx + 4], r15d
jne 0x140049c53
cmp dword [rbp + 0x3c], r15d
jne 0x140049c53
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setl cl
jmp 0x140049bc8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setb cl
jmp 0x140049bc8
cmp eax, 0x3e
jne 0x140049cb7
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx + 4], r15d
jne 0x140049ca8
cmp dword [rbp + 0x3c], r15d
jne 0x140049ca8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setg cl
jmp 0x140049bc8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
seta cl
jmp 0x140049bc8
cmp eax, 0x108
jne 0x140049d0e
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx + 4], r15d
jne 0x140049cff
cmp dword [rbp + 0x3c], r15d
jne 0x140049cff
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setle cl
jmp 0x140049bc8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setbe cl
jmp 0x140049bc8
cmp eax, 0x109
jne 0x140049d65
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
cmp dword [rbx + 4], r15d
jne 0x140049d56
cmp dword [rbp + 0x3c], r15d
jne 0x140049d56
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setge cl
jmp 0x140049bc8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rbx], eax
setae cl
jmp 0x140049bc8
cmp dword [rdi + 4], 0x10a
jne 0x140049d9b
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, r15d
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov ecx, dword [rbp + 0x38]
shl dword [rbx], cl
jmp 0x140049960
cmp dword [rdi + 4], 0x10b
jne 0x140049dde
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, r15d
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov ecx, dword [rbp + 0x38]
cmp dword [rbx + 4], r15d
jne 0x140049dd7
sar dword [rbx], cl
jmp 0x140049960
shr dword [rbx], cl
jmp 0x140049960
cmp dword [rdi + 4], 0x2b
jne 0x140049e14
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
add dword [rbx], eax
jmp 0x140049b7e
cmp dword [rdi + 4], 0x2d
jne 0x140049b58
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.140049934
mov eax, dword [rbp + 0x38]
sub dword [rbx], eax
jmp 0x140049b7e
cmp dword [rdi + 4], 0x2f
jne 0x140049ea9
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rbx + 4]
jbe 0x140049e73
mov dword [rbx + 4], eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x140049f1a
cmp dword [rbx + 4], r15d
jne 0x140049e9c
cmp dword [rbx], 0x80000000
jne 0x140049e95
cmp ecx, 0xffffffff
je 0x140049f1a
mov eax, dword [rbx]
cdq
idiv ecx
jmp 0x140049ea2
mov eax, dword [rbx]
xor edx, edx
div ecx
mov dword [rbx], eax
jmp 0x140049960
cmp dword [rdi + 4], 0x25
jne 0x140049efc
mov rcx, rdi
call fcn.14004a5ec
lea rdx, [rbp + 0x38]
mov rcx, rdi
call fcn.14004a518
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rbx + 4]
jbe 0x140049ece
mov dword [rbx + 4], eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x140049f1a
cmp dword [rbx + 4], r15d
jne 0x140049eef
cmp dword [rbx], 0x80000000
jne 0x140049ee8
cmp ecx, 0xffffffff
je 0x140049f1a
mov eax, dword [rbx]
cdq
idiv ecx
jmp 0x140049ef5
mov eax, dword [rbx]
xor edx, edx
div ecx
mov dword [rbx], edx
jmp 0x140049960
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop r15
pop rdi
pop rbp
ret
mov edx, 0x3a
call fcn.1400497d4
int3
mov edx, 0x219
mov rcx, rdi
call fcn.140049778
int3