Function at 0x3005b826
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x3017f918]
push ebx
mov edx, dword [eax + 0x34]
push esi
mov dword [ebp - 4], edx
mov ecx, dword [eax + 0x38]
push edi
mov dword [ebp - 8], ecx
mov ebx, dword [eax + 0x30]
xor edi, edi
cmp dword [eax + 0x18], edi
mov dword [ebp - 0x34], ebx
je 0x3005b898
mov dword [eax + 0x18], edi
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
je 0x3005b871
movzx eax, byte [edx]
inc edx
cmp eax, 0xd
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], edx
je 0x3005b893
cmp eax, 0xa
je 0x3005b893
cmp edx, dword [ebp - 8]
jne 0x3005b850
mov eax, dword [0x3017f918]
push ebx
push dword [eax + 0x2c]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
call fcn.3005bf37
test eax, eax
jne 0x3005b850
push 0xfffffffffffffffe
pop eax
jmp 0x3005b9dd
mov eax, dword [0x3017f918]
mov esi, dword [ebp - 0x34]
cmp edx, dword [ebp - 8]
je 0x3005b8c9
movzx ecx, byte [edx]
inc edx
cmp ecx, 0xd
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
je 0x3005b8e8
cmp ecx, 0xa
je 0x3005b8e8
xor esi, esi
cmp esi, edi
jne 0x3005b8c4
cmp ecx, 0x20
je 0x3005b8c4
cmp ecx, 9
jne 0x3005b8f6
cmp edx, dword [ebp - 8]
jne 0x3005b8ed
push ebx
push dword [eax + 0x2c]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
call fcn.3005bf37
test eax, eax
je 0x3005b88b
mov eax, dword [0x3017f918]
mov edx, dword [ebp - 4]
jmp 0x3005b89b
push 1
pop esi
jmp 0x3005b8b6
cmp esi, edi
je 0x3005b8e3
inc dword [eax + 0x1c]
jmp 0x3005b8de
mov ecx, ebx
sub ecx, edx
cmp ecx, 0x466
jge 0x3005b918
push ebx
push dword [eax + 0x2c]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
call fcn.3005bf37
mov eax, dword [0x3017f918]
inc dword [eax + 0x1c]
mov eax, dword [ebp - 0xc]
cmp eax, 0x46
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [0x3017f408], edi
mov dword [ebp - 0x18], eax
jg 0x3005b9e2
cmp eax, 0x45
jge 0x3005ba15
cmp eax, 0x42
jl 0x3005b950
cmp eax, 0x43
jle 0x3005ba15
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jbe 0x3005b95b
dec dword [ebp - 4]
mov eax, dword [0x3017f918]
or dword [ebp - 0x18], 0xffffffff
mov dword [eax + 0x18], 1
mov eax, dword [0x3017f918]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x34], ecx
mov eax, dword [0x3017f918]
mov ecx, dword [ebp - 8]
push 0
mov dword [eax + 0x38], ecx
mov eax, dword [0x3017f918]
mov ecx, dword [ebp - 0x24]
mov esi, 0xfa1
push esi
mov dword [eax + 0x3c], ecx
mov eax, dword [0x3017f918]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x40], ecx
mov eax, dword [0x3017f918]
push 1
add eax, 4
push eax
push 0x17
call fcn.3005bd06
test eax, eax
je 0x3005b9bd
mov eax, dword [0x3017f918]
dec dword [eax + 4]
push 0
push esi
push 1
push dword [0x3017f918]
push 0x18
call fcn.3005bd06
test eax, eax
je 0x3005b9da
mov eax, dword [0x3017f918]
dec dword [eax]
mov eax, dword [ebp - 0x18]
pop edi
pop esi
pop ebx
leave
ret
cmp eax, 0x49
je 0x3005ba38
cmp eax, 0x4e
je 0x3005b9fd
cmp eax, 0x4e
jle 0x3005b950
cmp eax, 0x50
jmp 0x3005b94a
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
inc dword [ebp - 4]
cmp eax, 0x45
mov dword [ebp - 0xc], eax
jne 0x3005ba2e
mov dword [ebp - 0x18], 0x58
mov ebx, dword [ebp - 4]
movzx eax, byte [ebx]
cmp eax, 0x20
mov dword [ebp - 0xc], eax
je 0x3005ba28
cmp eax, 9
jne 0x3005ba44
inc ebx
mov dword [ebp - 4], ebx
jmp 0x3005ba18
cmp eax, 0x4e
je 0x3005ba15
jmp 0x3005b950
mov eax, dword [ebp - 4]
mov al, byte [eax]
inc dword [ebp - 4]
cmp al, 0x44
jmp 0x3005ba31
cmp ebx, dword [ebp - 8]
jae 0x3005ba5c
cmp eax, 0x3b
je 0x3005ba5c
cmp eax, 0xd
je 0x3005ba5c
cmp eax, 0xa
jne 0x3005b950
mov esi, dword [ebp - 0x34]
push 1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x1c]
pop edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
inc dword [ebp - 4]
cmp eax, 0xd
mov dword [ebp - 0xc], eax
ja 0x3005bb61
test eax, eax
je 0x3005bb44
cmp eax, 0xa
je 0x3005baa1
cmp eax, 0xd
jne 0x3005bb61
mov ecx, dword [ebp - 4]
cmp byte [ecx], 0xa
jne 0x3005baa1
inc dword [ebp - 4]
mov dword [ebp - 0x2c], 1
cmp dword [ebp - 0x20], 0
je 0x3005bac4
and dword [ebp - 0x20], 0
dec ebx
cmp byte [ebx], 0x22
jne 0x3005babd
cmp ebx, dword [ebp - 0x30]
jae 0x3005babe
inc ebx
mov ecx, dword [ebp - 0x10]
or dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x3005baf5
mov eax, dword [0x3017f918]
mov ecx, dword [ebp - 0x30]
mov dword [eax + edi*4 + 0xc0], ebx
mov al, bl
sub al, cl
cmp al, 0xff
mov byte [ecx - 1], al
ja 0x3005bae8
or dword [ebp - 0x28], edx
or dword [0x3017f408], edx
and byte [ebx], 0
mov eax, dword [ebp - 0xc]
inc ebx
cmp dword [ebp - 0x2c], 0
jne 0x3005b96b
lea edi, [eax - 0x41]
test edi, edi
mov dword [ebp - 0x1c], edi
jl 0x3005bba5
cmp edi, 0x1a
jge 0x3005bba5
push 1
pop eax
mov ecx, edi
shl eax, cl
mov ecx, dword [0x3017f408]
test ecx, eax
mov dword [ebp - 0x10], eax
jne 0x3005b950
mov eax, dword [0x3017f918]
inc ebx
mov dword [ebp - 0x30], ebx
mov dword [eax + edi*4 + 0x58], ebx
mov esi, ebx
xor edx, edx
jmp 0x3005ba6b
mov ecx, dword [ebp - 8]
inc ecx
cmp dword [ebp - 4], ecx
jne 0x3005bb61
mov ecx, dword [ebp - 8]
dec dword [ebp - 4]
cmp ecx, dword [ebp - 0x34]
jne 0x3005baa1
jmp 0x3005b950
mov ecx, edx
sub ecx, 0
je 0x3005bcd8
dec ecx
je 0x3005bc70
dec ecx
je 0x3005bc4b
dec ecx
je 0x3005bc21
dec ecx
je 0x3005bbe2
dec ecx
je 0x3005bbab
dec ecx
jne 0x3005ba6b
cmp eax, 0x3b
jne 0x3005baa8
push 1
pop edx
lea ebx, [esi + 1]
mov byte [esi], al
inc esi
jmp 0x3005ba6b
and dword [ebp - 0x10], 0
jmp 0x3005bb3d
cmp dword [ebp - 0x14], 1
je 0x3005bc16
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x30179498]
lea ecx, [ecx + 0x30179498]
mov edi, ecx
add edi, edx
push edi
inc ecx
push ecx
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.3005bf90
test eax, eax
je 0x3005bc6b
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x1c]
jmp 0x3005bb97
cmp eax, 0x40
jb 0x3005bbfe
cmp eax, 0x50
jae 0x3005bbfe
movzx eax, byte [eax + 0x301794cc]
mov dword [ebp - 0x14], eax
push 5
pop edx
jmp 0x3005ba6b
push 0x3017956e
push 0x3017951c
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.3005bf90
test eax, eax
jne 0x3005bc43
dec dword [ebp - 4]
push 1
pop edx
jmp 0x3005ba6b
mov ecx, eax
and cx, 0xf0
cmp cl, 0x30
jne 0x3005bc16
mov ecx, dword [ebp - 0x14]
and ecx, 0xf
shl ecx, 4
and eax, 0xf
or eax, ecx
mov dword [ebp - 0xc], eax
jmp 0x3005bb97
mov eax, dword [ebp - 0xc]
jmp 0x3005bb97
cmp eax, 0x4e
jne 0x3005bc54
push 4
jmp 0x3005bbf8
mov ecx, eax
and cx, 0xf0
cmp cl, 0x20
jne 0x3005bc16
push 3
pop edx
mov dword [ebp - 0x14], eax
jmp 0x3005ba6b
mov edi, dword [ebp - 0x1c]
jmp 0x3005bc16
cmp eax, 9
je 0x3005bb9d
cmp eax, 0x1b
je 0x3005bcd1
cmp eax, 0x20
je 0x3005bb9d
cmp eax, 0x3b
je 0x3005bcca
cmp eax, 0x5c
jne 0x3005bb9a
cmp dword [ebp - 0x18], 0x50
jne 0x3005bb9a
cmp edi, 0xf
jne 0x3005bb9a
mov ecx, dword [ebp - 4]
cmp byte [ecx], 0x1b
je 0x3005bb9a
mov byte [esi], al
mov eax, dword [ebp - 4]
lea ebx, [esi + 2]
mov al, byte [eax]
inc esi
mov byte [esi], al
inc esi
inc dword [ebp - 4]
jmp 0x3005ba6b
push 6
jmp 0x3005bbf8
push 2
jmp 0x3005bbf8
sub eax, 9
je 0x3005ba6b
sub eax, 0x17
je 0x3005ba6b
dec eax
dec eax
jne 0x3005bc16
cmp edi, 0xa
jne 0x3005bc16
push 1
pop edx
mov dword [ebp - 0x20], edx
jmp 0x3005ba6b