Function at 0x464c6d
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
and dword [ebp - 0x10], 0
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
push edi
call fcn.0041426d
test byte [ebp - 4], 0x40
mov ebx, eax
jne 0x464ca5
cmp byte [0x4fc2be], 0
je 0x465008
cmp ebx, 5
jl 0x465008
mov esi, dword [ebp + 0xc]
push 5
pop ecx
mov edi, 0x4c04c4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x465008
or dword [ebp - 4], 0x40
mov esi, dword [ebp + 0xc]
lea eax, [ebx + 2]
xor ecx, ecx
cmp ebx, ecx
cdq
mov dword [ebp + 8], ecx
mov dword [ebp - 0x2c], edx
jle 0x464cef
xor edi, edi
cmp byte [ecx + esi], 0x26
jne 0x464ce3
inc edi
xor edx, edx
add eax, edi
adc dword [ebp - 0x2c], edx
inc ecx
cmp ecx, ebx
jl 0x464cda
push dword [ebp - 0x2c]
push eax
call fcn.00411ffd
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x464d09
push 7
pop eax
jmp 0x46508d
cmp byte [esi + 5], 0x2f
push 5
pop edx
jne 0x464d65
cmp byte [esi + 6], 0x2f
jne 0x464d65
lea eax, [esi + 7]
mov cl, byte [eax]
push 7
pop edx
test cl, cl
je 0x464d65
cmp cl, 0x2f
je 0x464d31
inc edx
mov cl, byte [edx + esi]
test cl, cl
jne 0x464d24
cmp edx, 7
je 0x464d65
cmp edx, 0x10
jne 0x464d4b
push 9
pop ecx
mov edi, eax
mov esi, 0x4c04cc
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x464d62
push eax
add edx, 0xfffffff9
push edx
push 0x4c04d8
call fcn.00413a69
add esp, 0xc
jmp 0x465061
mov esi, dword [ebp + 0xc]
mov al, byte [edx + esi]
xor edi, edi
test al, al
je 0x464e9e
cmp al, 0x23
je 0x464e8c
inc edx
cmp al, 0x25
jne 0x464e1b
mov cl, byte [edx + esi]
movzx ebx, cl
test byte [ebx + 0x4a17d8], 8
je 0x464e1b
movzx ebx, byte [edx + esi + 1]
test byte [ebx + 0x4a17d8], 8
je 0x464e1b
inc edx
movsx eax, byte [edx + esi]
mov dword [ebp - 0x20], eax
movsx ecx, cl
mov eax, ecx
sar eax, 6
and al, 1
mov bl, 7
imul bl
sub cl, al
mov eax, dword [ebp - 0x20]
sar eax, 6
and al, 1
imul bl
mov esi, dword [ebp + 0xc]
mov bl, al
mov eax, dword [ebp - 0x20]
sub al, bl
and ecx, 0xf
shl ecx, 4
and eax, 0xf
add ecx, eax
inc edx
test ecx, ecx
je 0x464e12
mov al, cl
jmp 0x464e75
cmp al, 0x23
je 0x464e81
test edi, edi
jne 0x464dfb
cmp al, 0x3f
je 0x464e81
cmp edi, 1
jne 0x464e08
cmp al, 0x3d
je 0x464e81
cmp al, 0x26
je 0x464e81
cmp edi, 2
jne 0x464e11
cmp al, 0x26
je 0x464e81
inc edx
mov al, byte [edx + esi]
test al, al
jne 0x464de7
jmp 0x464e81
cmp edi, 1
jne 0x464e5f
cmp al, 0x26
je 0x464e28
cmp al, 0x3d
jne 0x464e75
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp + 8]
cmp byte [ebx + ecx - 1], 0
je 0x464e4f
cmp al, 0x26
jne 0x464e58
mov byte [ebx + ecx], 0
inc ecx
mov dword [ebp + 8], ecx
jmp 0x464e5b
cmp al, 0x23
je 0x464e81
cmp byte [edx + esi - 1], 0x26
je 0x464e81
inc edx
mov al, byte [edx + esi]
test al, al
jne 0x464e43
jmp 0x464e81
push 2
pop edi
xor al, al
jmp 0x464e75
test edi, edi
jne 0x464e67
cmp al, 0x3f
je 0x464e70
cmp edi, 2
jne 0x464e75
cmp al, 0x26
jne 0x464e75
xor edi, edi
xor al, al
inc edi
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 8]
inc dword [ebp + 8]
mov byte [ecx + ebx], al
mov al, byte [edx + esi]
test al, al
jne 0x464d72
cmp edi, 1
jne 0x464e9e
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 8]
inc dword [ebp + 8]
mov byte [eax + ecx], 0
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 8]
add eax, esi
mov byte [eax], 0
mov byte [eax + 1], 0
mov eax, esi
call fcn.0041426d
lea ebx, [eax + esi + 1]
jmp 0x464fe1
mov eax, ebx
call fcn.0041426d
mov esi, eax
lea eax, [esi + ebx + 1]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0xc], eax
call fcn.0041426d
mov dword [ebp - 0x20], eax
cmp esi, 3
jne 0x464ef7
push esi
pop ecx
mov edi, ebx
mov esi, 0x4c04f4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x464ef7
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
jmp 0x464fd7
xor edx, edx
cmp dword [ebp - 0x2c], 5
mov dword [ebp + 8], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
jne 0x464f38
push 5
mov edx, 0x4c04f8
pop ecx
mov edi, ebx
mov esi, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x464fd7
mov eax, 0x60000
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp + 8], 0x4fd6f0
mov dword [ebp - 0x18], eax
xor edx, edx
cmp dword [ebp - 0x2c], 4
jne 0x464f67
mov eax, 0x4c0500
mov eax, dword [eax]
cmp eax, dword [ebx]
jne 0x464f67
mov eax, dword [ebp - 4]
mov ecx, 0x87
and eax, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp + 8], 0x4fd708
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x4c0508
cmp dword [ebp + 8], edx
je 0x464fd7
mov eax, dword [ebp + 8]
mov edi, dword [eax]
xor ebx, ebx
cmp edi, edx
je 0x464fa3
mov eax, edi
call fcn.0041426d
cmp dword [ebp - 0x20], eax
jne 0x464f98
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0xc]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x464f94
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x464fb3
mov eax, dword [ebp + 8]
inc ebx
mov edi, dword [eax + ebx*8]
test edi, edi
jne 0x464f77
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push 0x4c0510
jmp 0x464d55
mov eax, dword [ebp + 8]
mov ecx, dword [eax + ebx*8 + 4]
test ecx, ecx
je 0x464fa3
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x18]
jg 0x464fec
mov eax, dword [ebp - 0x1c]
not eax
and eax, dword [ebp - 4]
or eax, ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
lea ebx, [eax + ecx + 1]
cmp byte [ebx], 0
jne 0x464ebd
jmp 0x465040
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push 0x4c0524
call fcn.00413a69
add esp, 0xc
mov dword [ebp - 0x10], 3
jmp 0x465068
lea eax, [ebx + 2]
cdq
push edx
push eax
call fcn.00411ffd
mov esi, eax
pop ecx
pop ecx
mov dword [ebp - 8], esi
test esi, esi
je 0x464d01
test ebx, ebx
je 0x465033
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00497bcc
add esp, 0xc
add ebx, esi
and dword [ebp - 4], 0xffffffbf
mov byte [ebx], 0
mov byte [ebx + 1], 0
push dword [ebp - 0x24]
call fcn.00411c53
pop ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
test eax, eax
jne 0x46507a
push dword [ebp - 0x24]
push 0x4c053c
call fcn.00413a69
pop ecx
pop ecx
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp + 0x1c]
push dword [ebp - 8]
mov dword [ecx], eax
call fcn.00412074
and dword [ebp - 8], 0
pop ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret