Function at 0x5d2c90
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov ebp, dword [r8]
mov ebx, ebp
and ebx, 0x40
mov qword [rsp + 0xa0], r8
mov r14, rcx
mov r13, rdx
mov qword [rsp + 0xa8], r9
test rdx, rdx
je 0x5d2f70
mov rcx, rdx
call sub.msvcrt.dll_strlen
mov esi, eax
and esi, 0x3fffffff
lea r12d, [rsi + 2]
movsxd r12, r12d
test ebx, ebx
je 0x5d2d88
cmp esi, 4
jle 0x5d2cf9
cmp dword [r13], 0x656c6966
je 0x5d2dc8
call fcn.005a7100
test eax, eax
jne 0x5d2da8
mov rcx, r12
call fcn.00591bf0
mov r12, rax
test rax, rax
je 0x5d2da8
movsxd rbx, esi
test esi, esi
jne 0x5d2db0
and ebp, 0xffffffbf
mov byte [r12 + rbx], 0
mov byte [r12 + rbx + 1], 0
mov dword [rsp + 0x2c], ebp
mov rcx, r14
xor r13d, r13d
call fcn.005a7680
mov rdx, qword [rsp + 0xa8]
mov qword [rdx], rax
test rax, rax
je 0x5d2f40
mov rax, qword [rsp + 0xa0]
mov edx, dword [rsp + 0x2c]
mov dword [rax], edx
mov rax, qword [rsp + 0xb0]
mov qword [rax], r12
mov eax, r13d
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [0x0065d2e6], 0
je 0x5d2cf9
cmp esi, 4
jg 0x5d2ceb
jmp 0x5d2cf9
mov r13d, 7
jmp 0x5d2d6f
mov r8, rbx
mov rdx, r13
mov rcx, rax
call sub.msvcrt.dll_memcpy
jmp 0x5d2d25
cmp byte [r13 + 4], 0x3a
jne 0x5d2cf9
lea edx, [rsi - 1]
mov rax, r13
lea rcx, [r13 + rdx + 1]
nop
xor edx, edx
cmp byte [rax], 0x26
sete dl
add rax, 1
add r12, rdx
cmp rcx, rax
jne 0x5d2de0
call fcn.005a7100
mov ebx, eax
test eax, eax
jne 0x5d2da8
mov rcx, r12
call fcn.00591bf0
mov r12, rax
test rax, rax
je 0x5d2da8
or ebp, 0x40
cmp byte [r13 + 5], 0x2f
mov dword [rsp + 0x2c], ebp
je 0x5d3239
movzx eax, byte [r13 + 5]
mov r9d, 5
test al, al
setne dl
cmp al, 0x23
je 0x5d33ee
xor r10d, r10d
test dl, dl
je 0x5d33ee
mov qword [rsp + 0x90], r14
jmp 0x5d2e98
cmp r10d, 1
je 0x5d2fb8
lea esi, [rbx + 2]
movsxd r11, esi
add r11, r12
test r10d, r10d
jne 0x5d2f8f
cmp al, 0x3f
jne 0x5d2f8f
mov r10d, 1
xor eax, eax
mov byte [rbp], al
mov ebx, r8d
mov r9d, edx
movzx eax, byte [rcx]
cmp al, 0x23
je 0x5d3004
test al, al
je 0x5d3004
lea edx, [r9 + 1]
lea r8d, [rbx + 1]
movsxd r11, ebx
movsxd r15, edx
movsxd rsi, r8d
lea rbp, [r12 + r11]
lea rcx, [r13 + r15]
lea rdi, [r12 + rsi]
cmp al, 0x25
jne 0x5d2e50
movzx r11d, byte [rcx]
lea r14, [0x0082faa0]
mov rsi, r11
test byte [r14 + r11], 8
je 0x5d2f80
movzx r11d, byte [r13 + r15 + 1]
test byte [r14 + r11], 8
je 0x5d2f80
movsx eax, sil
lea ecx, [r9 + 2]
mov edx, eax
movsxd rcx, ecx
sar edx, 6
and edx, 1
lea eax, [rax + rdx*8]
add eax, edx
lea edx, [r9 + 3]
movsx r9d, byte [r13 + rcx]
and eax, 0xf
movsxd r11, edx
mov ecx, r9d
shl eax, 4
sar ecx, 6
and ecx, 1
lea r9d, [r9 + rcx*8]
add r9d, ecx
lea rcx, [r13 + r11]
and r9d, 0xf
add eax, r9d
je 0x5d337e
lea esi, [rbx + 2]
movsxd r11, esi
add r11, r12
jmp 0x5d2e7c
mov rdx, r14
lea rcx, str.no_such_vfs:__s
mov r13d, 1
call fcn.005cede0
mov rdi, qword [rsp + 0xb8]
mov qword [rdi], rax
mov rcx, r12
xor r12d, r12d
call fcn.005921d0
jmp 0x5d2d56
mov r12d, 2
xor esi, esi
jmp 0x5d2cf9
cmp r10d, 1
je 0x5d2ff0
lea esi, [rbx + 2]
movsxd r11, esi
add r11, r12
cmp r10d, 2
jne 0x5d2e7c
cmp al, 0x26
mov ebx, 1
cmove r10d, ebx
mov ebx, 0
cmove eax, ebx
jmp 0x5d2e7c
cmp al, 0x26
je 0x5d2fc0
cmp al, 0x3d
jne 0x5d2ff0
cmp byte [r12 + r11 - 1], 0
je 0x5d32aa
lea esi, [rbx + 2]
movsxd r11, esi
add r11, r12
cmp al, 0x26
je 0x5d3219
mov r10d, 2
xor eax, eax
jmp 0x5d2e7c
lea esi, [rbx + 2]
mov r10d, 1
movsxd r11, esi
add r11, r12
jmp 0x5d2e7c
mov r14, qword [rsp + 0x90]
cmp r10d, 1
je 0x5d3262
mov byte [rdi], 0
mov rcx, r12
mov byte [r11], 0
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
lea rdi, [r12 + rax + 1]
cmp byte [rdi], 0
je 0x5d2d37
mov qword [rsp + 0x30], r12
mov r13d, dword [rsp + 0x2c]
mov qword [rsp + 0x90], r14
nop word [rax + rax]
mov rcx, rdi
call sub.msvcrt.dll_strlen
mov ebp, eax
and eax, 0x3fffffff
lea rsi, [rdi + rax + 1]
and ebp, 0x3fffffff
mov rcx, rsi
call sub.msvcrt.dll_strlen
mov ebx, eax
and ebx, 0x3fffffff
cmp ebp, 3
je 0x5d3168
cmp ebp, 5
je 0x5d31d0
cmp ebp, 4
jne 0x5d3160
cmp dword [rdi], 0x65646f6d
jne 0x5d3160
mov eax, r13d
mov ebp, 0x87
lea r15, [0x0065c400]
and eax, 0x87
mov dword [rsp + 0x2c], eax
lea rax, str.access
mov qword [rsp + 0x38], rax
mov r12, qword [r15]
test r12, r12
je 0x5d3198
movsxd rdi, ebx
jmp 0x5d30f1
mov r12, qword [r15 + 0x10]
add r15, 0x10
test r12, r12
je 0x5d3198
mov rcx, r12
call sub.msvcrt.dll_strlen
and eax, 0x3fffffff
cmp ebx, eax
jne 0x5d30e0
mov r8, rdi
mov rdx, r12
mov rcx, rsi
mov r14, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x5d30e0
mov eax, dword [r15 + 8]
test eax, eax
je 0x5d3198
mov edx, eax
and dl, 0x7f
cmp edx, dword [rsp + 0x2c]
jg 0x5d3276
not ebp
and r13d, ebp
or r13d, eax
lea rdi, [rsi + r14 + 1]
cmp byte [rdi], 0
jne 0x5d3050
mov dword [rsp + 0x2c], r13d
mov r12, qword [rsp + 0x30]
mov r14, qword [rsp + 0x90]
jmp 0x5d2d37
movsxd r14, ebx
jmp 0x5d3136
cmp word [rdi], 0x6676
je 0x5d3208
mov eax, 1
test eax, eax
mov rax, rsi
movsxd r14, ebx
cmovne rax, qword [rsp + 0x90]
mov qword [rsp + 0x90], rax
jmp 0x5d3136
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov dword [rsp + 0x2c], r13d
lea rcx, str.no_such__s_mode:__s
mov r12, qword [rsp + 0x30]
mov r13d, 1
call fcn.005cede0
mov rdi, qword [rsp + 0xb8]
mov qword [rdi], rax
jmp 0x5d2f60
cmp dword [rdi], 0x68636163
jne 0x5d3160
cmp byte [rdi + 4], 0x65
jne 0x5d3160
lea rax, str.cache
mov dword [rsp + 0x2c], 0x60000
mov ebp, 0x60000
lea r15, str.shared
mov qword [rsp + 0x38], rax
jmp 0x5d30c5
xor eax, eax
cmp byte [rdi + 2], 0x73
jne 0x5d3173
jmp 0x5d3178
add ebx, 3
mov byte [rbp], 0
mov r8d, esi
mov rbp, rdi
movsxd rax, ebx
mov rdi, r11
mov esi, ebx
lea r11, [r12 + rax]
xor eax, eax
jmp 0x5d2e7c
cmp byte [r13 + 6], 0x2f
je 0x5d32f8
mov eax, 0x2f
mov edx, 1
mov r9d, 5
jmp 0x5d2e31
mov r11, rdi
mov esi, r8d
mov rdi, rbp
lea eax, [rsi + 1]
mov byte [rdi], 0
mov rdi, r11
cdqe
lea r11, [r12 + rax]
jmp 0x5d3016
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov dword [rsp + 0x2c], r13d
lea rcx, str._s_mode_not_allowed:__s
mov r12, qword [rsp + 0x30]
mov r13d, 3
call fcn.005cede0
mov rdi, qword [rsp + 0xb8]
mov qword [rdi], rax
jmp 0x5d2f60
movzx eax, byte [rcx]
mov r14, qword [rsp + 0x90]
test al, al
jne 0x5d32cf
jmp 0x5d3259
movzx eax, byte [rcx + 1]
add edx, 1
add rcx, 1
test al, al
je 0x5d3259
cmp al, 0x23
je 0x5d3259
cmp byte [rcx - 1], 0x26
jne 0x5d32c0
movsxd rcx, edx
mov r11, rdi
mov esi, r8d
mov rdi, rbp
mov qword [rsp + 0x90], r14
add rcx, r13
mov r9d, edx
jmp 0x5d2e85
movzx eax, byte [r13 + 7]
lea r8, [r13 + 7]
test al, al
setne cl
mov edx, ecx
cmp al, 0x2f
je 0x5d3442
test cl, cl
je 0x5d3442
lea rax, [r13 + 8]
mov r9d, 7
jmp 0x5d332d
cmp dl, 0x2f
je 0x5d333f
movzx edx, byte [rax]
mov ecx, r9d
add rax, 1
add r9d, 1
test dl, dl
jne 0x5d3328
cmp r9d, 0x10
jne 0x5d3359
movabs rax, 0x736f686c61636f6c
cmp qword [r13 + 7], rax
je 0x5d3428
lea edx, [rcx - 6]
lea rcx, str.invalid_uri_authority:__.s
mov r13d, 1
call fcn.005cede0
mov rdi, qword [rsp + 0xb8]
mov qword [rdi], rax
jmp 0x5d2f60
movzx eax, byte [rcx]
cmp al, 0x23
je 0x5d344d
test al, al
je 0x5d344d
test r10d, r10d
mov r14, qword [rsp + 0x90]
setne dl
jmp 0x5d33bd
cmp r10d, 2
jne 0x5d33ab
cmp al, 0x26
je 0x5d33d2
movzx eax, byte [r13 + r11 + 1]
add r11, 1
test al, al
je 0x5d33fb
cmp al, 0x23
je 0x5d33fb
mov r9d, r11d
cmp al, 0x3f
jne 0x5d33c8
test dl, dl
je 0x5d3409
cmp r10d, 1
jne 0x5d33a1
cmp al, 0x3d
jne 0x5d33a7
movsxd rcx, r9d
mov r11, rdi
mov esi, r8d
mov rdi, rbp
mov qword [rsp + 0x90], r14
add rcx, r13
jmp 0x5d2e85
lea r11, [r12 + 1]
mov rdi, r12
jmp 0x5d3016
mov r11, rdi
mov esi, r8d
mov rdi, rbp
jmp 0x5d300c
movsxd rcx, r11d
mov esi, r8d
mov r11, rdi
xor r10d, r10d
mov qword [rsp + 0x90], r14
add rcx, r13
mov rdi, rbp
jmp 0x5d2e85
cmp byte [r8 + 8], 0x74
jne 0x5d3359
movzx eax, byte [r13 + 0x10]
test al, al
setne dl
jmp 0x5d2e31
mov r9d, 7
jmp 0x5d2e31
mov r11, rdi
mov r14, qword [rsp + 0x90]
mov esi, r8d
mov rdi, rbp
jmp 0x5d300c