Function at 0x140057520
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x30
movsxd rsi, r8d
mov rdi, rdx
mov qword [rbp + 0x38], 0
mov rbx, rcx
cmp esi, 0xa
ja case.default.0x14005756b
mov qword [rsp + 0x50], r15
lea r15, [0x140000000]
nop word [rax + rax]
mov ecx, dword [r15 + rsi*4 + 0x57b10]
add rcx, r15
jmp rcx
cmp dword [rbx + 4], 0x3f
jne case.0x14005756b.1
mov rcx, rbx
call fcn.140058990
xor r8d, r8d
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbx + 4]
cmp eax, 0x2c
je 0x140057573
mov rcx, rbx
cmp eax, 0x3a
jne 0x140057ae7
call fcn.140058990
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi], 0
mov ecx, dword [rbp - 0xc]
mov eax, dword [rbp - 0x10]
cmovne eax, dword [rbp + 0x38]
cmp dword [rbp + 0x3c], ecx
mov dword [rdi], eax
cmova ecx, dword [rbp + 0x3c]
mov dword [rdi + 4], ecx
jmp 0x140057560
cmp dword [rbx + 4], 0x104
jne case.0x14005756b.2
mov rcx, rbx
call fcn.140058990
mov r8d, 2
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi], 0
jne 0x14005760b
cmp dword [rbp + 0x38], 0
jne 0x14005760b
xor eax, eax
mov dword [rdi + 4], 9
mov dword [rdi], eax
jmp 0x140057560
mov eax, 1
mov dword [rdi + 4], 9
mov dword [rdi], eax
jmp 0x140057560
cmp dword [rbx + 4], 0x105
jne case.0x14005756b.3
mov rcx, rbx
call fcn.140058990
mov r8d, 3
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi], 0
je 0x14005765f
cmp dword [rbp + 0x38], 0
je 0x14005765f
mov eax, 1
mov dword [rdi + 4], 9
mov dword [rdi], eax
jmp 0x140057560
xor eax, eax
mov dword [rdi + 4], 9
mov dword [rdi], eax
jmp 0x140057560
cmp dword [rbx + 4], 0x7c
jne case.0x14005756b.4
mov rcx, rbx
call fcn.140058990
mov r8d, 4
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
or dword [rdi], eax
jmp 0x1400579cf
cmp dword [rbx + 4], 0x5e
jne case.0x14005756b.5
mov rcx, rbx
call fcn.140058990
mov r8d, 5
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
xor dword [rdi], eax
jmp 0x1400579cf
cmp dword [rbx + 4], 0x26
jne case.0x14005756b.6
mov rcx, rbx
call fcn.140058990
mov r8d, 6
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
and dword [rdi], eax
jmp 0x1400579cf
mov eax, dword [rbx + 4]
cmp eax, 0x106
jne 0x140057729
mov rcx, rbx
call fcn.140058990
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
sete cl
mov dword [rdi], ecx
jmp 0x140057560
cmp eax, 0x107
jne case.0x14005756b.7
mov rcx, rbx
call fcn.140058990
mov r8d, 7
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setne cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbx + 4]
cmp eax, 0x3c
jne 0x1400577c0
mov rcx, rbx
call fcn.140058990
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi + 4], 9
jne 0x1400577a8
cmp dword [rbp + 0x3c], 9
jne 0x1400577a8
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setl cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setb cl
mov dword [rdi], ecx
jmp 0x140057560
cmp eax, 0x3e
jne 0x14005781b
mov rcx, rbx
call fcn.140058990
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi + 4], 9
jne 0x140057803
cmp dword [rbp + 0x3c], 9
jne 0x140057803
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setg cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
seta cl
mov dword [rdi], ecx
jmp 0x140057560
cmp eax, 0x108
jne 0x140057878
mov rcx, rbx
call fcn.140058990
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi + 4], 9
jne 0x140057860
cmp dword [rbp + 0x3c], 9
jne 0x140057860
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setle cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setbe cl
mov dword [rdi], ecx
jmp 0x140057560
cmp eax, 0x109
jne case.0x14005756b.8
mov rcx, rbx
call fcn.140058990
mov r8d, 8
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi + 4], 9
jne 0x1400578bd
cmp dword [rbp + 0x3c], 9
jne 0x1400578bd
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setge cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbp + 0x38]
xor ecx, ecx
cmp dword [rdi], eax
mov dword [rdi + 4], 9
setae cl
mov dword [rdi], ecx
jmp 0x140057560
mov eax, dword [rbx + 4]
cmp eax, 0x10a
jne 0x140057903
mov rcx, rbx
call fcn.140058990
mov r8d, 9
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov ecx, dword [rbp + 0x38]
shl dword [rdi], cl
jmp 0x140057560
cmp eax, 0x10b
jne case.0x14005756b.9
mov rcx, rbx
call fcn.140058990
mov r8d, 9
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
cmp dword [rdi + 4], 9
mov ecx, dword [rbp + 0x38]
jne 0x140057934
sar dword [rdi], cl
jmp 0x140057560
shr dword [rdi], cl
jmp 0x140057560
mov eax, dword [rbx + 4]
cmp eax, 0x2b
jne 0x140057964
mov rcx, rbx
call fcn.140058990
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
add dword [rdi], eax
jmp 0x1400579cf
cmp eax, 0x2d
jne case.0x14005756b.10
mov rcx, rbx
call fcn.140058990
mov r8d, 0xa
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400587d0
mov eax, dword [rbp + 0x38]
sub dword [rdi], eax
jmp 0x1400579cf
mov eax, dword [rbx + 4]
cmp eax, 0x2a
jne 0x1400579e3
mov rcx, rbx
call fcn.140058990
mov ecx, dword [rbx + 0x6c]
lea eax, [rcx + 1]
mov dword [rbx + 0x6c], eax
cmp ecx, 0x14
jge 0x140057b00
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400583a0
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140058180
dec dword [rbx + 0x6c]
mov eax, dword [rdi]
imul eax, dword [rbp + 0x38]
mov dword [rdi], eax
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rdi + 4]
jbe 0x140057560
mov dword [rdi + 4], eax
jmp 0x140057560
cmp eax, 0x2f
jne 0x140057a60
mov rcx, rbx
call fcn.140058990
mov ecx, dword [rbx + 0x6c]
lea eax, [rcx + 1]
mov dword [rbx + 0x6c], eax
cmp ecx, 0x14
jge 0x140057b00
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400583a0
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140058180
dec dword [rbx + 0x6c]
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rdi + 4]
jbe 0x140057a28
mov dword [rdi + 4], eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x140057af2
cmp dword [rdi + 4], 9
mov eax, dword [rdi]
jne 0x140057a55
cmp eax, 0x80000000
jne 0x140057a4b
cmp ecx, 0xffffffff
je 0x140057af2
cdq
idiv ecx
mov dword [rdi], eax
jmp 0x140057560
xor edx, edx
div ecx
mov dword [rdi], eax
jmp 0x140057560
cmp eax, 0x25
jne 0x140057ad5
mov rcx, rbx
call fcn.140058990
mov ecx, dword [rbx + 0x6c]
lea eax, [rcx + 1]
mov dword [rbx + 0x6c], eax
cmp ecx, 0x14
jge 0x140057b00
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1400583a0
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.140058180
dec dword [rbx + 0x6c]
mov eax, dword [rbp + 0x3c]
cmp eax, dword [rdi + 4]
jbe 0x140057aa5
mov dword [rdi + 4], eax
mov ecx, dword [rbp + 0x38]
test ecx, ecx
je 0x140057af2
cmp dword [rdi + 4], 9
mov eax, dword [rdi]
jne 0x140057aca
cmp eax, 0x80000000
jne 0x140057ac0
cmp ecx, 0xffffffff
je 0x140057af2
cdq
idiv ecx
mov dword [rdi], edx
jmp 0x140057560
xor edx, edx
div ecx
mov dword [rdi], edx
jmp 0x140057560
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret
mov edx, 0x3a
call fcn.1400573a0
int3
mov edx, 0x219
mov rcx, rbx
call fcn.140057340
int3
mov edx, 0x8d0
mov rcx, rbx
call fcn.140057340
int3